在声明数组和可为null的类型之前,是否可以使用它们

本文关键字:是否 可以使 类型 数组 声明 null | 更新日期: 2023-09-27 17:57:32

我引用了书中的以下段落:C#程序设计语言第四版

C#支持单和任何类型的多维数组。与上面列出的类型不同,array类型不必声明然后才能使用。相反数组类型由在带有方形的类型名称后面括号。例如,int[]是int的一维数组,int[,]是int,而int[][]是一维数组内部的一维阵列

可为null的类型也不必是声明后才能使用。对于每个不可用的值类型T是对应的可为null的类型T?,可以保持附加值无效的例如,int?是一种类型可以保存任何32位整数或值为null。

如何在不事先声明数组和可为null的类型的情况下使用它们?

在声明数组和可为null的类型之前,是否可以使用它们

简短回答

这些引号想说的是,您不必像声明自定义类一样,"创建"(或声明)数组和可为null的值类型来使用它们。它们已经作为C#语言功能提供。

长答案

如果您想声明一个ints数组,只需执行以下操作:

int[] intArray = new int[5];

如果您创建了一个自定义类,例如Foo,并且您想要声明一个Foo对象的数组,那么第一句话是说,您不必编写代码来告诉编译器可以容纳Foo对象的数组类型;只要这样做,编译器就会计算出其余部分:

Foo[] fooArray = new Foo[5];

类似地,要创建可为null值类型的项,只需将?附加到类型:

int? nullableInt = null;

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

Nullable<int> nullableInt = null;

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

相关文章: