Gen*_*c35 418 .net c# asp.net types
通常,问号的主要用途是有条件的,x ? "yes" : "no".
但是我已经看到了它的另一个用途,但是找不到?例如运算符的这种用法的解释.
public int? myProperty
{
get;
set;
}
Run Code Online (Sandbox Code Playgroud)
Sea*_*ean 421
这意味着所讨论的值类型是可空类型
可空类型是System.Nullable结构的实例.可空类型可以表示其基础值类型的正确值范围,以及其他空值.例如,a
Nullable<Int32>,发音为"Nullable of Int32",可以分配从-2147483648到2147483647的任何值,或者可以为其分配空值.Nullable<bool>可以为A 赋值true,false或null.在处理包含可能未赋值的元素的数据库和其他数据类型时,将null分配给numeric和Boolean类型的能力尤其有用.例如,数据库中的布尔字段可以存储值true或false,也可以是未定义的.Run Code Online (Sandbox Code Playgroud)class NullableExample { static void Main() { int? num = null; // Is the HasValue property true? if (num.HasValue) { System.Console.WriteLine("num = " + num.Value); } else { System.Console.WriteLine("num = Null"); } // y is set to zero int y = num.GetValueOrDefault(); // num.Value throws an InvalidOperationException if num.HasValue is false try { y = num.Value; } catch (System.InvalidOperationException e) { System.Console.WriteLine(e.Message); } } }
Kla*_*sen 116
这是一个简写Nullable<int>.Nullable<T>用于不能为null的值类型.
eKe*_*ek0 58
在
x ? "yes" : "no"
Run Code Online (Sandbox Code Playgroud)
的?声明的,如果句子.这里:x表示布尔条件; 在:之前的部分是then句子,而后面的部分是else句子.
例如,在
int?
Run Code Online (Sandbox Code Playgroud)
的?声明可以为空的类型,并且表示它之前的类型可以具有空值.
实际用途:
public string someFunctionThatMayBeCalledWithNullAndReturnsString(int? value)
{
if (value == null)
{
return "bad value";
}
return someFunctionThatHandlesIntAndReturnsString(value);
}
Run Code Online (Sandbox Code Playgroud)
int?是 的简写Nullable<int>。这两种形式可以互换。
Nullable<T>是一个运算符,您可以将其与值类型一起使用T以使其接受null.
如果您不知道:值类型是接受int、等值的类型bool...char
它们不能接受对值的引用:如果您为它们分配 a ,它们会生成编译时错误null,而不是引用类型,后者显然可以接受它。
你为什么需要那个?因为有时您的值类型变量可能会收到由无法正常工作的内容返回的空引用,例如从数据库返回的丢失或未定义的变量。
我建议您阅读Microsoft 文档,因为它很好地涵盖了该主题。
小智 6
意味着用 (int?) 声明的变量可以为空
int i1=1; //ok
int i2=null; //not ok
int? i3=1; //ok
int? i4=null; //ok
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
222825 次 |
| 最近记录: |