C# 问号在MVC中是什么意思?
例如,在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
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;