xpo*_*ort 1 c# arrays nullable
我引用了本书的以下段落: C#编程语言第四版
C#支持任何类型的单维和多维数组.与上面列出的类型不同,数组类型在使用之前不必声明.而是通过使用带方括号的类型名称来构造数组类型.例如,int []是int的一维数组,int [,]是int的二维数组,int [] []是int的一维数组的一维数组.
和
可以使用Nullable类型之前也不必声明它们.对于每个非可伸缩值类型T,存在相应的可空类型T ?,其可以保持附加值null.例如,int?是一种可以保存任何32位整数或值为null的类型.
如何使用数组和可空类型而不事先声明它们?
简短的回答
这些引文试图说明的是,您不必像声明自定义类一样"创建"(或声明)数组和可空值类型,以便使用它们.它们已作为C#语言功能提供.
答案很长
如果要声明一个ints 数组,只需执行以下操作:
int[] intArray = new int[5];
Run Code Online (Sandbox Code Playgroud)
例如Foo,如果您创建了一个自定义类,并且想要声明一个Foo对象数组,那么第一个引用就是说您不必编写代码来告诉编译器有关可以保存Foo对象的数组类型; 只需这样做,编译器将找出其余的:
Foo[] fooArray = new Foo[5];
Run Code Online (Sandbox Code Playgroud)
同样,要创建可以为null的值类型的项,只需附加?到类型:
int? nullableInt = null;
Run Code Online (Sandbox Code Playgroud)
另外,上面只是Nullable<T>结构的语法糖:
Nullable<int> nullableInt = null;
Run Code Online (Sandbox Code Playgroud)
请注意,这仅适用于值类型(包括结构),因为默认情况下所有引用类型(对象,委托等)都可以为空.