可以在声明数组和可空类型之前使用它们吗?

时间:2011-05-25 07:44:15

标签: c# arrays nullable

我引用了本书的以下段落: C#编程语言 第四版

  

C#支持单和   任何类型的多维数组。   与上面列出的类型不同,数组   类型不必声明   在他们可以使用之前。代替,   数组类型由。构造   跟随广场的类型名称   括号。例如,int []是一个   int的一维数组,   int [,]是一个二维数组   int和int [] []是一个   一维数组   int的一维数组。

  

Nullable类型也不一定非   在可以使用之前声明。对于   每个非n ullable值类型T那里   是一个相应的可空类型T?,   这可以保持额外的价值   空值。例如,int?是一种类型   可以容纳任何32位整数或   值null。

如何使用数组和可空类型而不事先声明它们?

1 个答案:

答案 0 :(得分:6)

简短回答

这些引文试图说明的是,您不必像创建自定义类那样“创建”(或声明)数组和可空值类型,以便使用它们。它们已作为C#语言功能提供。

答案很长

如果要声明int的数组,只需执行以下操作:

int[] intArray = new int[5];

如果您创建了一个自定义类,例如Foo,并且您想要声明一个Foo个对象的数组,那么第一个引用就是说您不必编写代码来告诉关于可以容纳Foo个对象的数组类型的编译器;只需执行此操作,编译器将找出其余部分:

Foo[] fooArray = new Foo[5];

同样,要创建可以为空的值类型的项,只需将?附加到类型:

int? nullableInt = null;

此外,以上只是Nullable<T>结构的语法糖:

Nullable<int> nullableInt = null;

请注意,这仅适用于值类型(包括结构),因为默认情况下所有引用类型(对象,委托等)都可以为空。