C# 類成員備忘

來源:互聯網
上載者:User

標籤:des   style   blog   color   io   os   使用   ar   for   

  • 隱藏基類的方法
  • 調用重寫或隱藏的基類方法
  • 嵌套的類型定義

 

隱藏基類的方法

當從基類繼承一個(非抽象)成員時,也就繼承了其實現的代碼,如果繼承的成員是虛擬,就可以用Overrid重寫這段實現代碼,

無論繼承的成員是否為虛擬,都可以隱藏這些實現代碼,這在繼承的公用成員不像預期的那樣工作時,是很有用的,

隱藏1:使用New關鍵詞

    public class MybaseClass    {        public void DoSomething()        {            Console.WriteLine("MybaseClassDoSomething");        }    }    public class MyDrivedClass : MybaseClass    {        new public void DoSomething()        {            Console.WriteLine("MyDrivedClassDoSomething");        }           }

隱藏2:使用重寫方法

    public class MybaseClass    {             public virtual void DoSomething1()        {            Console.WriteLine("MybaseClassDoSomething1");        }    }    public class MyDrivedClass : MybaseClass    {        public override void DoSomething1()        {            Console.WriteLine("MyDrivedClassDoSomething1");        }    }

使用時需要注意這兩種方法的區別:

重寫的情況下,無論是使用基類的對象還是子類的對象 調用的都是重寫後的方法,

New關鍵詞的情況下,如果使用的是基類對象,調用的還是基類的方法,子類對象調用的是子類方法

可以看出執行個體化子類的時候都是先執行個體化基類 ,然後才執行子類的建構函式,最後是驗證了上面兩種隱藏方式的的區別。

調用重寫或隱藏的基類方法

無論是重寫成員還是隱藏成員,都可以在衍生類別內部訪問基類成員,這在許多情況下是很有用的,

例如:

  1. 要對衍生類別的使用者隱藏繼承的公用成員,但仍能在類中訪問其功能
  2. 要給繼承的虛擬成員添加實現代碼,而不是簡單的使用重寫的新代碼替換它

 為此可以使用Base關鍵詞,它表示在衍生類別中的基類的實現代碼

 

嵌套的類型定義

除了在名稱空間中定義類以外還可以在其他類中定義這些類

    public class MyClass    {        public class MyNestedClass        {        }    }

 使用方法:

  CSharpRumenJD.MyClass.MyNestedClass mynestedclass = new MyClass.MyNestedClass();

 

C# 類成員備忘

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.