1、什麼是構造方法?
首先,它是一個方法,它是類中 眾多方法中的一個。其次,它具有類中其他方法所不具備的一些特性。
簡單來說,它是一個有著特殊使命的方法,他的綽號叫構造。
2、構造方法相對其他方法有哪些不同?
方法名:類中普通的方法可以根據代碼書寫者的個人喜好任意取名。但是,構造方法不可以。構造方法的名字必須與類名相同。換句話說,當類中的一個方法名與類名相同時,C#即認為此方法為類的構造方法。
執行順序:類中的普通方法是在類實例化之後被調用執行的,而構造方法則是在類實例化之前執行的。
可以簡單理解為:
當准備創建一個類的實例時,首先會執行構造方法,然後在進行類的實例化。如以下代碼
ClassName objName = new ClassName();
可以理解為 關鍵字 new 後面 ClassName() 為類的構造方法。
3、如果類中沒有書寫構造方法,實例化類時會出錯麼?
不會。首先,C#中 每個類都有自己的構造方法;即便你在書寫類時沒有書寫構造方法,C#也會創造一個默認的沒有參數的構造方法出來,這個默認的構造方法是看不到的,但它是真實存在的。
4、一個類中只能由一個構造方法麼?
不是的,一個類中可以存在多個構造方法,以不同的參數進行區分,這就構成了構造方法的重載。例如:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
private Program()
{
Console.WriteLine("我是構造函數Program(),我沒有參數");
}
public Program(string a)
{
Console.WriteLine("我是構造函數Program(string a),我的參數是字符");
}
public Program(int b)
{
Console.WriteLine("我是構造函數Program(int b),我的參數是數值");
}
public Program(string a,int b)
{
Console.WriteLine("我是構造函數Program(string a,int b),我的參數有兩個");
}
static void Main(string[] args)
{
Program objProgram0 = new Program();
Program objProgram1 = new Program("123");
Program objProgram2 = new Program(123);
Program objProgram3 = new Program("123",123);
Console.Read();
}
}
}