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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#变量定义中含问号代表啥相关的知识,希望对你有一定的参考价值。

C#变量定义中含问号的代表什么?
例如:private int? num中的?代表什么

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

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

System.Nullable<T> variable

  - 或 -

T? variable

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

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

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

参考技术A 可空类型修饰符“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?的拆箱转换。但是任何情况下可空类型都不满足接口约束,即使基础类型实现了该特定接口。 参考技术B int本来是一个值类型,不可以赋予空值
但这样一个问号,就是使得num成为一个可空类型,你后面这样写也是可以的了:
num = null

这样的作用就是有些时候当某些int值无意义,你又不想用0等特殊值来表示。本回答被提问者和网友采纳
参考技术C 1. 可空类型修饰符
例如 int?, DateTime?之类的 申明时加?表示值类型也可为空
2. 三元表达式:
例如:x?y:z 表示如果表达式x为true,则返回y;如果x为false,则返回z,有时用来替代简化ifelse 的
参考技术D 是可空类型的变量。不过引用类型的变量是无法以这种形式命名变量的。如String? Str = new String();语法是错误的。一般情况可空类型在想数据库中传参很有用的。因为数据库中的字段可能使设置为空类型的。那么这时C#中的可空类型(?)有大显其用了!

C# 中2个问号的作用。C#的??代表是什么意思

https://www.cnblogs.com/gggg/p/5867412.html

 

变量定义中含有一个问号,意思是这个数据类型是NullAble类型的。(NullAble意思是可以为空)
变量定义中含有两个问号,意思是取所赋值??左边的,如果左边为null,取所赋值??右边的。

以上是关于C#变量定义中含问号代表啥的主要内容,如果未能解决你的问题,请参考以下文章

求助 C# 中如何在变量名中含有某个变量的值,在线等......

C#中的“定义字符串变量”是啥意思。

问号在 SQL 查询中代表啥? [复制]

在汇编语言中变量的名字代表啥?

js中的var是啥意思,

C语言定义变量后面加冒号,数字啥意思