【问题标题】:Can array and nullable types be used before they are declared?数组和可空类型可以在声明之前使用吗?
【发布时间】:2011-05-25 07:44:15
【问题描述】:

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

C# 支持单和 任何类型的多维数组。 与上面列出的类型不同,数组 不必声明类型 在它们可以使用之前。反而, 数组类型由 跟随一个带有正方形的类型名称 括号。例如,int[] 是一个 一维 int 数组, int[,] 是一个二维数组 int,而 int[][] 是一个 一维数组 int 的一维数组。

可空类型也不必是 在它们可以使用之前声明。为了 那里的每个非 n 可空值类型 T 是对应的可空类型 T?, 可以保持额外的价值 空值。例如,int?是一种类型 可以保存任何 32 位整数或 值为 null。

如何在不提前声明的情况下使用数组和可空类型?

【问题讨论】:

    标签: c# arrays nullable


    【解决方案1】:

    简答

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

    长答案

    如果你想声明一个ints 的数组,只需这样做:

    int[] intArray = new int[5];
    

    如果你创建了一个自定义类,例如Foo,并且你想声明一个Foo 对象的数组,第一个引号是说你不必编写代码来告诉编译器关于数组的事情可以容纳Foo 对象的类型;只需这样做,编译器就会找出其余的:

    Foo[] fooArray = new Foo[5];
    

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

    int? nullableInt = null;
    

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

    Nullable<int> nullableInt = null;
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-14
      • 2010-10-30
      • 2019-08-29
      • 1970-01-01
      • 2020-03-29
      • 2012-03-06
      相关资源
      最近更新 更多