摘要:
结构类型的构造函数与类的构造函数类似,但是 structs 不能包含显式默认构造函数,因为编译器将自动提供一个构造函数。 此构造函数会将 struct 中的每个字段初始化为默认值。有关更多信息,请参见Default Values Table (C# Reference)。 然而,只有当 struct 用 new 实例化时,才会调用此默认构造函数。 例如,下面的代码使用 Int32 的默认构造函数,因此您可以确信整数已初始化:int i = new int();Console.WriteLine(i);不过,下面的代码却会导致编译器错误,因为它没有使用 new,而且尝试使用尚未初始化的对象:in 阅读全文
摘要:
结构与类共享大多数相同的语法,但结构比类受到的限制更多:在结构声明中,除非字段被声明为 const 或 static,否则无法初始化。结构不能声明默认构造函数(没有参数的构造函数)或析构函数。结构在赋值时进行复制。将结构赋值给新变量时,将复制所有数据,并且对新副本所做的任何修改不会更改原始副本的数据。在使用值类型的集合(如 Dictionarystring, myStruct)时,请务必记住这一点。结构是值类型,而类是引用类型。与类不同,结构的实例化可以不使用 new 运算符。结构可以声明带参数的构造函数。一个结构不能从另一个结构或类继承,而且不能作为一个类的基。所有结构都直接继承自Sys 阅读全文