程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 類中隱藏基類方法和Partial,

C# 類中隱藏基類方法和Partial,

編輯:C#入門知識

C# 類中隱藏基類方法和Partial,


今天對於.NET開發人員來說最開心的事情莫過於微軟搞開源了,這覺得是給搞.NET開發的長臉。雖然我是一個初學者,這無疑給我極大的學習動力。Fighting!!!

當一個類從父類繼承了一個成員時,也就繼承了它的執行代碼,如果成員時虛擬的,我們可以用override重寫這段執行代碼。但無論他是否是虛擬的,都可以通過new 關鍵字來隱藏它。例如:

public class BaseClass
{
    public void DoSomething()
    {
        //執行代碼
    }
}
public class ChildClass:BaseClass
{
    new public void DoSomething()
    {
        //隱藏基類的DoSomething方法
    }
}

如果不使用new關鍵字的話,編譯器會警告,說隱藏了基類成員。這樣當我們不想繼承的方法像基類那樣運行我們就可以隱藏它。

有如下兩個類:

public class BaseClass
{
    public virtual void DoSomething()
    {
        Console.WriteLine("Base Function!");
    }
}

public class ChildClass:BaseClass
{
    new public void DoSomething()
    {
        Console.WriteLine("Child Function!");
    }
}

我們用下面的代碼調用它們

ChildClass child= new ChildClass();
BaseClass baseClass;
baseClass = child;
baseClass.DoSomething();

結果為

BaseFunction!

如果我們不使用new關鍵字,而是用override重寫基類的方法,那麼我們得到的結果應該是“Child Function!”。

 

Partial定義部分類和部分方法

我們可以通過Partial來定義一個類,通過這個關鍵字我們可以在一個文件中定義字段、屬性和構造函數,而在另外的一個文件中定義其方法。

public partial class MyClass
{
    //部分類定義
}

在windows窗體應用程序中就用到了部分類的定義,Windows窗體的代碼分別在Form.cs和Form.Designer.cs中。

對於方法我們同樣可以在不同的部分類中定義,在一個部分類中聲明它,在另外一個部分類中實現,例如像下面的代碼:

public partial class MyClass
{
    partial void MyPartialMethod();
}

public partial class MyClass
{
    partial void MyPartialMethod()
    {
        //方法的實現
    }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved