关于结构的默认构造函数

结构类型的构造函数与类的构造函数类似,但是 structs 不能包含显式默认构造函数,因为编译器将自动提供一个构造函数。 此构造函数会将 struct 中的每个字段初始化为默认值。有关更多信息,请参见Default Values Table (C# Reference)。 然而,只有当 struct 用 new 实例化时,才会调用此默认构造函数。 例如,下面的代码使用 Int32 的默认构造函数,因此您可以确信整数已初始化:

int i = new int();
Console.WriteLine(i);
不过,下面的代码却会导致编译器错误,因为它没有使用 new,而且尝试使用尚未初始化的对象:

int i;
Console.WriteLine(i);
或者,基于 structs 的对象(包括所有内置数值类型)可以初始化或赋值后使用,如下面的示例所示:

int a = 44;  // Initialize the value type...int b;
b = 33;      // Or assign it before using it.Console.WriteLine("{0}, {1}", a, b);

因此对值类型调用默认构造函数不是必需的。

posted @ 2011-01-30 01:04  duanyong  阅读(1402)  评论(0编辑  收藏  举报