-8

在 C# 中,如何声明一个二维按钮数组?

4

3 回答 3

7

是的 - 在第一个版本中,变量没有被明确分配。第二种肯定赋值的,默认值(0)。所以:

int a;
Console.WriteLine(a); // Error!

int a = new int();
Console.WriteLine(a); // Prints 0

然而,我认为我从来没有真正刻意写过new int()。你通常会写:

int a = 0;

作为一种更具可读性的方法。对于泛型方法,您可以使用default(T)或者new T()但是,如果T被限制为不可为空的值类型。

数组是一个完全独立的问题,应该单独提出。

于 2013-04-15T14:45:53.293 回答
3

后者 ( int a = new int();) 赋值 - 它与int a = 0;or基本相同int a = default(int);。这意味着,如果它是一个局部变量,则明确赋值的规则是满意的。对于第一个 ( int a;),在分配之前您不能使用它。例如,Console.WriteLine(a);如果您没有明确给出a值,则会失败。

请注意,字段(又名实例变量和类型级变量)本质上被视为“分配”了它们的默认值(0在这种情况下),因此在字段的情况下,它只是冗余代码。

于 2013-04-15T14:46:13.863 回答
1

第一个只是声明一个整数变量而不初始化它的值:

int a;

因为它还没有被初始化,所以在你给它赋值之前你不能使用它。

第二个声明整数变量并将其初始化为默认值。

int a = new int();

要回答第二个问题,您可以声明一个任意类型的二维数组,如下所示:

Button[,] buttons;

要将数组初始化为特定大小,请使用

Button[,] buttons = new Button[4, 5];

虽然,数组中的元素 item 将被初始化为其类型的默认值。

于 2013-04-15T14:45:33.543 回答