2009-07-01 57 views
0

我發現C#很有趣......但不幸的是(或幸運的是)它有很多實現OOP規則的功能......他們有不同的機制,困惑....在c#中學習OOP規則的最佳方式或最佳實踐

在c#中的虛擬,新的,...修飾符有不同的規則....那麼學習OOP規則和輕鬆使用它們的最佳方式或最佳實踐是什麼?

那麼學習OOP規則並輕鬆使用它們的最佳方式或最佳實踐是什麼?

+1

看到這篇文章:http://stackoverflow.com/questions/159978/c-keyword-usage-virtualoverride-vs-new – 2009-07-01 04:12:07

+0

優秀的鏈接!非常感謝你 – odiseh 2009-07-02 11:36:47

回答

2

最好的選擇是從fundamental source瞭解OOP原理(封裝,繼承和多態)。然後再擔心特定的語言實現。一旦你真正理解了基本概念,語言細節就變得易於學習,應用和掌握。

3

最好的學習方法是保持簡單並且實踐(編程)很多。 關於虛擬/新/覆蓋,主要有三種情況:

  1. 虛擬+覆蓋 - 使用在基類中的虛擬和覆蓋在派生類中,如:

    class BaseClass 
    {  
        public void virtual Test(){...} 
    } 
    class DerivedClass: BaseClass 
    { 
        public void override Test(){...} 
    } 
    
  2. 摘要+倍率 - 這是與前面的情況的變型,其中該基礎構件不限定體:

    abstract class BaseClass 
    { 
        public void abstract Test(){...} 
    } 
    class DerivedClass: BaseClass 
    { 
        public void override Test(){...} 
    } 
    
  3. 無改性劑 - 這是有用的wh恩,你不要覆蓋方法計劃:

    class BaseClass 
    { 
        public void Test(){...} 
    } 
    class DerivedClass: BaseClass 
    { 
        public void OtherMethod(){...} 
    } 
    

    在這種情況下,如果OtherMethod被評爲Test會有一個警告。事實上,它會與基本方法衝突。您可以通過添加一個new修改擺脫警告在

    abstract class BaseClass 
    { 
        public void Test(){...} 
    } 
    class DerivedClass: BaseClass 
    { 
        public new void Test(){...} 
    } 
    

    不過,我會建議避免new修改如果可能的話,因爲它是有點混亂。