2009-07-01 131 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修改如果可能的话,因为它是有点混乱。