2015-06-08 102 views
-4

我正在學習C#,但我不明白什麼是方法隱藏的用法?我搜索了網頁,但我仍然不明白它是如何工作的。任何人都可以解釋它如何工作?方法隱藏的用途是什麼?

+1

你的意思是:「它是如何工作」或「你爲什麼要這麼做?」 – Cadburry

+0

我問任何用途有或沒有 –

+0

確定你可以給我的任何引用鏈接? –

回答

0

方法隱藏指Information Hiding這通常是在編程中使用的一個非常基本的圖案。基本上你通常希望實現組件和實現細節與接口的完全分離。

+1

我不認爲他指的封裝,我認爲他在談論[這]對谷歌非常熱門結果(https://msdn.microsoft.com/en-us/library/435f1dw2.aspx)。 – dcastro

1

方法隱藏是用於替代與在子類中的新功能的基類的非虛擬方法的技術。它有一些令人討厭的行爲,可以很容易地把人趕出去。要通過舉例的方式說明:

class BaseClass 
{ 
    public void Foo() 
    { 
     Console.WriteLine("BaseClass"); 
    } 
} 

class ChildClass : BaseClass 
{ 
    public new void Foo() 
    { 
     Console.WriteLine("ChildClass"); 
    } 
} 

ChildClass obj1 = new ChildClass(); 
BaseClass obj2 = obj1; 
obj1.Foo(); // Prints "ChildClass" 
obj2.Foo(); // Prints "BaseClass" 

如果Foo已宣佈virtualnew就沒有必要和兩個obj1.Foo()obj2.Foo()會印在上面的例子中ChildClass

你需要知道的唯一的另一件事是,使用繼承的這些日子通常是不被接受的(搜索「繼承是邪惡的」還是「組合vs繼承」), 。因此,您不必擔心隱藏方法(除非有人用舊的和/或錯誤的代碼將它施加給您)。

相關問題