在c#中学习OOP规则的最佳方法或最佳实践

时间:2009-07-01 04:09:46

标签: c# oop

我发现C#非常有趣......但遗憾的是(或幸运的是!)它有很多功能来实现OOP规则....它们有不同的机制,让我有时会感到困惑....

c#中的virtual,new,...修饰符有不同的规则....那么学习OOP规则并轻松使用它们的最佳方法或最佳实践是什么?

那么学习OOP规则并轻松使用它们的最佳方法或最佳实践是什么??

2 个答案:

答案 0 :(得分:3)

最好的学习方法是保持简单和练习(程序)很多。 关于虚拟/新/覆盖,有三种主要情况:

  1. 虚拟+覆盖 - 在基类中使用virtual并在派生类中覆盖,如:

    class BaseClass  
    {      
         public void virtual Test(){...}  
    }  
    class DerivedClass: BaseClass  
    {  
        public void override Test(){...}  
    }
    
  2. Abstract + override - 这是前一种情况的变体,其中基本成员没有定义正文:

    abstract class BaseClass
    {
        public void abstract Test(){...}
    }
    class DerivedClass: BaseClass
    {
        public void override Test(){...}
    }
    
  3. 无修饰符 - 当您不打算覆盖方法时,这非常有用:

    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修饰符,因为它有些令人困惑。

答案 1 :(得分:2)

最好的办法是从fundamental source了解OOP原则(封装,继承和多态)。然后担心以后的特定语言实现。一旦您真正理解了基本概念,语言细节就变得易于学习,应用和掌握。