C#中感叹号(!) 的作用总结
作者:李志强 发布时间:2021-10-14 15:08:12
标签:c#,感叹号,!
1.关系运算符
!= 与等号共同组成关系运算符,检查两个操作数的值是否相等,如:A!=B
2.逻辑运算符
! 称为逻辑非运算符。用来逆转操作数的逻辑状态。如果条件为真则逻辑非运算符将使其为假。如:bool a=true; bool b=!a;
3.null 容忍操作符(null-forgiving operator)
来自于 C#8 的新特性,比较冷门,国内的翻译 C#8 的文章基本都没有提到。它是一个非常有用的特性。
官方文档:! (null-forgiving) operator (C# reference)
它的主要作用就是告诉编译器,变量不可能为 null,这对于有代码洁癖的人来说非常有用。
上面的代码,json["name"] 返回的是可空引用类型 JToken? 所以一般需要做是否为空的判断,不然调用 Value<string>() 方法会引起异常。但是在上图的代码中,是不可能为空的,所以要去掉这个波浪线,要么写个 if 判断来取消,要么就使用 !
但是注意这个不要乱用,只有确认一定不会为空的时候才能使用
来源:https://www.cnblogs.com/stulzq/p/14085008.html


猜你喜欢
- springboot部署项目在linux的两种方式 可以选择 war包方式或者jar包方式(个人推荐使用jar方式)1.springboot
- 0x00 关于AndroidManifest.xmlAndroidManifest.xml 是每个android程序中必须的文件。它位于整个
- Java读取txt文件内容。可以作如下理解:首先获得一个文件句柄。File file = new File(); file即为文件句柄。两人
- 在开发中,可能会遇到一对多的关系,这个时候,一条sql语句就难以胜任这个任务了。只能先执行一条sql,然后根据返回的结果,再做一次sql关联
- 今天给大家讲讲有关自定义对话框的相关内容,前面两篇都在在利用系统提供的函数来实现对话框,但局限性太大,当我们想自己定义视图的时候,就不能利用
- 1、获取表中最后一条数据public static String demo() throws SQLException { String s
- 前言今天起床,拿起手机开机第一时间当然是打开微信了,左右滑动Viewpager,发现它使用了一种叫惰性加载,或者说懒加载(lazy-load
- 从一个Stream中过滤null值复习一个Stream 包含 null 数据的例子.Java8Examples.javapackage co
- 无平台限制,依赖于快递api网接口 ----------------实体类 [DataContract]  
- 安装Free Mybatis plugin即可安装MyBatisCodeHelper插件(推荐)补充:IDEA插件(mybatis框架下ma
- 前言开发中很多需要javac 的程序依赖 JAVA_HOME环境变量.如果是手工下载源码安装的JDK,很容易知道JAVA_HOME的目录.
- 前言最近一段时间看了一些介绍ViewDragHelper的博客,感觉这是一个处理手势滑动的神奇,看完以后就想做点东西练练手,于是就做了这个A
- 安卓虽然已经成为了移动设备第一操作系统,且影响力也延伸到了汽车和tv端,不过对于谷歌来说,需要依靠Java来做安卓开发一直是一个心病,因为O
- 今天给大家带来一个向右滑动销毁Activity的效果,Activtiy随着手指的移动而移动,该效果在Android应用中还是比较少见的,在I
- 本文实例为大家分享了java批量解析微信dat文件的具体代码,供大家参考,具体内容如下微信图片默认路径:C:\Users\b-eet\Doc
- 在 Intellij Idea 中,我们需要设置 Settings 中的 Java Compiler 和 Project Structure
- 定义:定义对象间一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并自动更新。类型:行为类模式类图: 
- 使用DOM4J方式生成XML文件的步骤如下:引入JAR包通过DocumentHelper类的createDocument()创建Docume
- 什么是枚举?枚举是JDK5引入的新特性。在某些情况下,一个类的对象是固定的,就可以定义为枚举。在实际使用中,枚举类型也可以作为一种规范,保障
- 需求:字符串(字符串只有一位小数)转float进行运算, 将结果转成字符串(保留一位小数)直接上代码:float f1 = 0.1f;Str