Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 问号在MVC中是什么意思?_C#_Asp.net Mvc_Types - Fatal编程技术网

C# 问号在MVC中是什么意思?

C# 问号在MVC中是什么意思?,c#,asp.net-mvc,types,C#,Asp.net Mvc,Types,例如,在MVC中,当我们使用数据类型编写它时,“?”意味着什么 public Grade? Grade { get; set; } 什么是“?”节目?如果我不写“?”会有什么不同?Grade?与Nullable相同。它是一个,不特定于MVC。如果您想使任何属性为空,那么我们添加问号“?” 公共级?等级{get;set;}-->等级属性也将接受空值 public Grade{get;set;}-->此属性不允许为空值在您在注释中提供的链接中,Grade表示作为值类型的枚举。值类型不能指向null

例如,在MVC中,当我们使用数据类型编写它时,“?”意味着什么

public Grade? Grade { get; set; }

什么是“?”节目?如果我不写“?”会有什么不同?

Grade?
Nullable
相同。它是一个,不特定于MVC。

如果您想使任何属性为空,那么我们添加问号“?”

公共级?等级{get;set;}
-->等级属性也将接受空值


public Grade{get;set;}
-->此属性不允许为空值

在您在注释中提供的链接中,Grade表示作为值类型的枚举。值类型不能指向null,因此需要在其后面加上?表示空值的符号。这基本上与说:

public Nullable<Grade> Grade { get; set; }
请记住,如果尝试对可为null的类型执行操作,则会取消以下运算符:

book areEqual = x == y;
也就是说:

bool areEqual = (x.HasValue && y.HasValue) ? (x.Value == y.Value) : false;

这意味着可空类型可以使用原始值类型中的运算符。

表示可空类型。可为null的类型表示可分配
null
值的值类型变量。无法基于引用类型创建可为
null
的类型,因为引用类型已支持
null

从您为教程提供的链接:

Grade属性是一个枚举。等级类型后的问号 声明指示等级属性可为空。等级 这表示null不同于零等级-null表示等级不是零等级 已知或尚未分配

因此,在同一示例中,
注册
是一个引用类型,默认情况下可为空。因此,在声明该类的对象时,不需要显式的

这是一个有效的可空声明。您可以为其分配
null

int? num = null;
您还可以执行以下操作:

int y = num.GetValueOrDefault();
其中
y
将获取
num
包含的任何值(如果它包含值),否则
null
将是可空类型的默认值

您可以通过以下方式明确检查它是否包含
null

num.HasValue();
从可为null的类型化变量中获取值,如下所示:

int y = num.value;

id在作为参数传递给action方法时可能为空。

nullable,它可以获取空值,您可以使用
变量进行检查。HasValue
几小时前我就读到了这方面的内容。它允许为空类型,但如果Grade是一个类,我不明白为什么它需要为空类型?operator@pcnThird看到这个了吗?我正在执行这个教程。将它作为注释发布
int y = num.value;