我發現C#很有趣......但不幸的是(或幸運的是)它有很多實現OOP規則的功能......他們有不同的機制,困惑....在c#中學習OOP規則的最佳方式或最佳實踐
在c#中的虛擬,新的,...修飾符有不同的規則....那麼學習OOP規則和輕鬆使用它們的最佳方式或最佳實踐是什麼?
那麼學習OOP規則並輕鬆使用它們的最佳方式或最佳實踐是什麼?
我發現C#很有趣......但不幸的是(或幸運的是)它有很多實現OOP規則的功能......他們有不同的機制,困惑....在c#中學習OOP規則的最佳方式或最佳實踐
在c#中的虛擬,新的,...修飾符有不同的規則....那麼學習OOP規則和輕鬆使用它們的最佳方式或最佳實踐是什麼?
那麼學習OOP規則並輕鬆使用它們的最佳方式或最佳實踐是什麼?
最好的選擇是從fundamental source瞭解OOP原理(封裝,繼承和多態)。然後再擔心特定的語言實現。一旦你真正理解了基本概念,語言細節就變得易於學習,應用和掌握。
最好的學習方法是保持簡單並且實踐(編程)很多。 關於虛擬/新/覆蓋,主要有三種情況:
虛擬+覆蓋 - 使用在基類中的虛擬和覆蓋在派生類中,如:
class BaseClass
{
public void virtual Test(){...}
}
class DerivedClass: BaseClass
{
public void override Test(){...}
}
摘要+倍率 - 這是與前面的情況的變型,其中該基礎構件不限定體:
abstract class BaseClass
{
public void abstract Test(){...}
}
class DerivedClass: BaseClass
{
public void override Test(){...}
}
無改性劑 - 這是有用的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
修改如果可能的話,因爲它是有點混亂。
看到這篇文章:http://stackoverflow.com/questions/159978/c-keyword-usage-virtualoverride-vs-new – 2009-07-01 04:12:07
優秀的鏈接!非常感謝你 – odiseh 2009-07-02 11:36:47