C#变量定义中含问号代表什么

发布网友

我来回答

5个回答

热心网友

  C#变量定义中含问号代表该变量允许为空(null)。

  可以为 null 的类型可以表示基础类型的所有值,另外还可以表示 null 值。 可以为 null 的类型可通过下面两种方式中的一种声明:

System.Nullable<T> variable

  - 或 -

T? variable

  T 是可以为 null 的类型的基础类型。 T 可以是包括 struct 在内的任何值类型;但不能是引用类型。

  -------------------------------------------

  可以查看MSDN帮助:“可以为 null 的类型(C# 编程指南)”和“使用可以为 null 的类型(C# 编程指南)”。

热心网友

可空类型修饰符“T?”:可空类型的基础类型可以是任何非可空值类型或任何具有struct约束的类型参数,但不能是可空类型或引用类型。例如:int?代表是可空的整形,而int??则是无效类型。即可空类型可以表示其基础类型的所有值和一个额外的空值。语法 T?是System.Nullable<T>的缩写形式。可空类型具有一个HasValue的bool类型只读属性,当可空类型实例的该属性为true时,则表示该实例是非空实例,包含一个已知值Value;HasValue为false时,访问Value属性将导致 System.InvalidOperationException。可空类型T?具有一个类型为T的单个参数的公共构造函数,如new int?(123)将获得一个值为123的int?类型实例。从T?到由T实现的任何接口都存在装箱转换,并且从由T实现的任何接口都存在到T?的拆箱转换。但是任何情况下可空类型都不满足接口约束,即使基础类型实现了该特定接口。

热心网友

int本来是一个值类型,不可以赋予空值
但这样一个问号,就是使得num成为一个可空类型,你后面这样写也是可以的了:
num = null

这样的作用就是有些时候当某些int值无意义,你又不想用0等特殊值来表示。

热心网友

1. 可空类型修饰符
例如 int?, DateTime?之类的 申明时加?表示值类型也可为空
2. 三元表达式:
例如:x?y:z 表示如果表达式x为true,则返回y;如果x为false,则返回z,有时用来替代简化if{}else{} 的

热心网友

是可空类型的变量。不过引用类型的变量是无法以这种形式命名变量的。如String? Str = new String();语法是错误的。一般情况可空类型在想数据库中传参很有用的。因为数据库中的字段可能使设置为空类型的。那么这时C#中的可空类型(?)有大显其用了!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com