C#中派生類挪用基類結構函數用法剖析。本站提示廣大學習愛好者:(C#中派生類挪用基類結構函數用法剖析)文章只能為提供參考,不一定能成為您想要的結果。以下是C#中派生類挪用基類結構函數用法剖析正文
本文實例講述了C#中派生類挪用基類結構函數用法。分享給年夜家供年夜家參考。詳細剖析以下:
這裡的默許結構函數是指在沒有編寫結構函數的情形下體系默許的無參結構函數
1、當基類中沒有本身編寫結構函數時,派生類默許的挪用基類的默許結構函數
例如:
public class MyBaseClass { } public class MyDerivedClass : MyBaseClass { public MyDerivedClass() { Console.WriteLine("我是子類無參結構函數"); } public MyDerivedClass(int i) { Console.WriteLine("我是子類帶一個參數的結構函數"); } public MyDerivedClass(int i, int j) { Console.WriteLine("我是子類帶二個參數的結構函數"); } }
此時實例化派生類時,挪用基類默許結構函數
2、當基類中編寫結構函數時,派生類沒有指定挪用結構哪一個結構函數時,會尋覓無參的結構函數,假如沒有則報錯,別的不管挪用派生類中的哪一個結構函數都是尋覓無參的誰人基類結構函數,而非參數婚配。
例如:
public class MyBaseClass { public MyBaseClass(int i) { Console.WriteLine("我是基類帶一個參數的結構函數"); } } public class MyDerivedClass : MyBaseClass { public MyDerivedClass() { Console.WriteLine("我是子類無參結構函數"); } public MyDerivedClass(int i) { Console.WriteLine("我是子類帶一個參數的結構函數"); } public MyDerivedClass(int i, int j) { Console.WriteLine("我是子類帶二個參數的結構函數"); } }
此時實例化派生類時則報錯
3、基類中編寫了結構函數,則派生類中可以指定挪用基類的某個結構函數,應用base症結字。
例如
public class MyBaseClass { public MyBaseClass(int i) { Console.WriteLine("我是基類帶一個參數的結構函數"); } } public class MyDerivedClass : MyBaseClass { public MyDerivedClass() : base(i) { Console.WriteLine("我是子類無參結構函數"); } public MyDerivedClass(int i) : base(i) { Console.WriteLine("我是子類帶一個參數的結構函數"); } public MyDerivedClass(int i, int j) : base(i) { Console.WriteLine("我是子類帶二個參數的結構函數"); } }
此時實例化派生類時應用的帶一個參數的結構函數時,則不會報錯,由於他指定了基類的結構函數。
4、假如基類中的結構函數不含有沒有參結構函數,那末派生類中的結構函數必需全體指定挪用的基類結構函數,不然失足
例如
public class MyBaseClass { public MyBaseClass(int i) { Console.WriteLine("我是基類帶一個參數的結構函數"); } } public class MyDerivedClass : MyBaseClass { public MyDerivedClass() { Console.WriteLine("我是子類無參結構函數"); } public MyDerivedClass(int i) : base(i) { Console.WriteLine("我是子類帶一個參數的結構函數"); } public MyDerivedClass(int i, int j) { Console.WriteLine("我是子類帶二個參數的結構函數"); } }
此時編譯將不克不及經由過程
願望本文所述對年夜家的C#法式設計有所贊助。