首页 > 学院 > 开发设计 > 正文

c# "??"与"?"操作符

2019-11-17 03:04:45
字体:
来源:转载
供稿:网友

c# "??"与"?"操作符

条件操作符是向右关联的,从左到右进行计算,于是a?b:c?d:e 应理解为 a?b:(c?d:e)。在c#2.0里面实现了Nullable数据类型,放弃对object数据进行 ifobject==null)这样的判断了。同时你会发现,数据库应用上,数据库中有的字段允许取空值,在C#世界中引入nullable类型正好与之对应,从(C#)对象映射到关系数据库对象,或者反过来,转换都是比较平滑。为了实现Nullable数据类型转换成non-Nullable型数据,就有了一个这样的操作符”??(两个问号)“,双问号操作符意思是取所赋值??左边的,如果左边为null,取所赋值??右边的,比如int y = x ?? -1 如果x为空,那么y的值为-1.于是这时候就可以把最上面第二段代码改成:string strParam= Request.Params["param"]?? "";嘿嘿,是不是更简洁了。另外还有”?(单问号)“修饰符,是System.Nullable的缩写形式,比如int?代表是可空的整形,例如:int? a = 1 或者 int? b=null。Nullable类型具有一个HasValue的bool类型只读属性,当Nullable类型实例的该属性为true时,则表示该实例是非空实例,包含一个已知值Value,HasValue为false时,访问Value属性将导致System.InvalidOperationException。转载:http://www.VEVb.com/refactor/archive/2012/05/30/2526147.html
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表