C#构造函数的重载

C#中的构造函数也可以应用方法重载。C#中有默认构造函数,也可以定义带参数的构造函数。构造函数必须与类同名,并且不能有返回值。所以C#构造函数重载相当于不同数量的参数方法重载。

using System;

class Animal

{

public string _name;

public string _color;

public int _speed;

public Animal()

{

this._speed = 30;

}

public Animal(string name, string color)

{

this._name = name;

this._color = color;

}

public Animal(string name, string color, int speed)

{

this._name = name;

this._color = color;

this._speed = speed;

}

}

class Program

{

static void Main(string[]args)

{

//方法一

Animal animal1 = new Animal();

animal1._name = "兔子";

animal1._color = "灰色";

//animal1._speed = 40;

Console.WriteLine(

"调用默认构造函数输出动物为{0},颜色为{1},奔跑速度为{2}km/h",

animal1._name, animal1._color, animal1._speed);

//方法二

Animal animal2 = new Animal("狗", "黄色");

Console.WriteLine("调用两个参数构造函数输出动物为{0},颜色为{1}",

animal2._name, animal2._color);

//方法三

Animal animal3 = new Animal("花猫", "白色", 20);

Console.WriteLine(

"调用三个参数构造函数输出动物为{0},颜色为{1},奔跑速度为{2}",

animal3._name, animal3._color, animal3._speed);

Console.WriteLine("一只" + animal3._color + "的" + animal3._name + "正在以"

+ animal3._speed + "km/h的速度在奔跑\n");

Console.ReadLine();

}

}

我们再看一个例子:

using System;

class Program

{

private string _name;

private int _age;

private string _qualification;

public Program()

{

_age = 18;

}

public Program(string name, int age, string qualification)

{

this._name = name;

this._age = age;

this._qualification = qualification;

}

static void Main()

{

Program p = new Program();

Console.WriteLine("默认构造函数输出年龄为" + p._age);

Program p1 = new Program("李公", 19, "大学");

Console.WriteLine("参数构造函数输出姓名为" + p1._name + ",年龄为" + p1._age

+ ",文化程度为" + p1._qualification);

}

}