C# 语言默认构造函数
示例
当没有构造函数定义类型时:
public class Animal
{
}然后编译器会生成一个等效于以下内容的默认构造函数:
public class Animal
{
public Animal() {}
}该类型的任何构造函数的定义都会禁止默认构造函数的生成。如果类型定义如下:
public class Animal
{
public Animal(string name) {}
}那么Animal只能通过调用声明的构造函数来创建。
//这是有效的
var myAnimal = new Animal("Fluffy");
//这无法编译
var unnamedAnimal = new Animal();对于第二个示例,编译器将显示一条错误消息:
“动物”不包含带有0个参数的构造函数
如果希望一个类同时具有无参数构造函数和带有参数的构造函数,则可以通过显式实现这两个构造函数来实现。
public class Animal
{
public Animal() {} //等效于默认构造函数。
public Animal(string name) {}
}如果该类扩展了另一个没有无参数构造函数的类,则编译器将无法生成默认构造函数。例如,如果我们有一个类Creature:
public class Creature
{
public Creature(Genus genus) {}
}然后Animal定义为classAnimal:Creature{}不会编译。
热门推荐
10 医院探望朋友祝福语简短
11 毕业祝福语简短女朋友
12 春节虎年爸妈祝福语简短
13 儿童毕业祝福语 简短6
14 开工仪式横幅祝福语简短
15 孩子日常祝福语大全简短
16 清晨寄语诗句祝福语简短
17 结婚送亲认亲祝福语简短
18 虎年喝酒拜年祝福语简短