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

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

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

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

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

  1. 虚拟+覆盖 – 在基类中使用虚拟并在派生类中覆盖,如下所示:

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

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