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)里面的?怎么解释?

解决方案 »

  1.   

    []:数组
    int?:可赋null值的int类型
      

  2.   

    ?表示这是一种特殊的整数类型,表示“可空”。
    主要用于数据库中,比如有一个数据库字段定义为int,但它标记了null,对于这种数据库的值除了int范围内的值之外,还有一个可能就是null。
    int? k;
    仍然是一个结构体数据,它和其它操作特性和普通整数完全相同,但它可以进行如下操作
    k=null;
    k==null;
    []是声明数组。
      

  3.   

    []:表示数组 声明
    int?:对于那些不能赋值为null的变量可以赋null
    比如int,double,datatime等
      

  4.   

    Nullable <int>[] arrs = new Nullable <int>[5]; 这是泛型数组啊foreach遍历arrs里面的元素,int是arrs里面的元素类型
      

  5.   


    Nullable <int>[] arrs = new Nullable <int>[5]; 这是泛型数组啊 代码定义了一个范型可空数组,数组内为整型元素foreach (int? j in arrs)
    因为前面定义了可空类数组,为了避免搜到空值而出错,所以定义J也能为空.
      

  6.   

    int?在这里和Nullable <int>等价哈?
      

  7.   

    []表示数组,在你这里就是Nullable <int>的一个数组,数组里面的元素是Nullable <int>
    int?表示可以包含null
      

  8.   

    准确的说,应该叫 值类型的可空值类型我们知道,引用类型(Class)的默认值是 null
    而值类型(Struct)永远都不能等于 null
    但是在数据库中,一个整形(int)字段又可以赋值为 null
    为了解决这个问题,微软在 FCL 2.0 及其以后的版本加入了 值类型(Struct)的可空支持而问号是C#的一种简写语法,不一定适合其它语言
    Nullable <int>[] arrs 等价于 int?[]
      

  9.   

    [] 是表示他是一个可空的值类型数组int? 是表示 ,,int i = 0,等数值外还可以int i = null;