这么短的一段里面竟然有两处语法不懂...MSDN也没搜到...
C# code
class NullableEx
{
public static void Main()//Main_9_3_5
{
Nullable<int>[] arrs = new Nullable<int>[5];
//int?[] arrs = new int?[5];
arrs[4] = 100;
arrs[2] = 200;
arrs[3] = 300;
foreach (int? j in arrs)
{
if (j == null)
Console.WriteLine("No value");
else
Console.WriteLine(j);
}
Console.Read();
}
}
这个:反省后面跟一个[]什么意思?Nullable<int>[] arrs = new Nullable<int>[5];
另外:foreach (int? j in arrs)里面的?怎么解释?
------解决方案--------------------[]:数组
int?:可赋null值的int类型
------解决方案--------------------?表示这是一种特殊的整数类型,表示“可空”。
主要用于数据库中,比如有一个数据库字段定义为int,但它标记了null,对于这种数据库的值除了int范围内的值之外,还有一个可能就是null。
int? k;
仍然是一个结构体数据,它和其它操作特性和普通整数完全相同,但它可以进行如下操作
k=null;
k==null;
[]是声明数组。
------解决方案--------------------[]:表示数组 声明
int?:对于那些不能赋值为null的变量可以赋null
比如int,double,datatime等
------解决方案--------------------Nullable <int>[] arrs = new Nullable <int>[5]; 这是泛型数组啊
foreach遍历arrs里面的元素,int是arrs里面的元素类型
------解决方案--------------------Nullable <int>[] arrs = new Nullable <int>[5]; 这是泛型数组啊
代码定义了一个范型可空数组,数组内为整型元素
foreach (int? j in arrs)
因为前面定义了可空类数组,为了避免搜到空值而出错,所以定义J也能为空.
------解决方案--------------------[]表示数组,在你这里就是Nullable <int>的一个数组,数组里面的元素是Nullable <int>
int?表示可以包含null
------解决方案--------------------准确的说,应该叫 值类型的可空值类型
我们知道,引用类型(Class)的默认值是 null
而值类型(Struct)永远都不能等于 null
但是在数据库中,一个整形(int)字段又可以赋值为 null
为了解决这个问题,微软在 FCL 2.0 及其以后的版本加入了 值类型(Struct)的可空支持
而问号是C#的一种简写语法,不一定适合其它语言
Nullable <int>[] arrs 等价于 int?[]
------解决方案--------------------俺也不懂
------解决方案--------------------[] 是表示他是一个可空的值类型数组
int? 是表示 ,,int i = 0,等数值外还可以int i = null;
------解决方案--------------------MSDN
真的没有吗?
哦呵呵.
------解决方案--------------------一看就懂
------解决方案--------------------学习了