在c#中学习OOP规则的最佳方法或最佳实践
我发现C#非常有趣……但不幸的是(或幸运的是!)它有很多function来实现OOP规则……它们有不同的机制,让我有时会感到困惑….
c#中的virtual,new,…修饰符有不同的规则….那么学习OOP规则并轻松使用它们的最佳方法或最佳实践是什么?
那么学习OOP规则并轻松使用它们的最佳方法或最佳实践是什么?
学习的最好方法是保持简单并且练习(编程)很多。 关于虚拟/新/覆盖,有三种主要情况:
-
虚拟+覆盖 – 在基类中使用虚拟并在派生类中覆盖,如下所示:
class BaseClass { public void virtual Test(){...} } class DerivedClass: BaseClass { public void override Test(){...} }
-
Abstract + override – 这是前一种情况的变体,其中基本成员没有定义主体:
abstract class BaseClass { public void abstract Test(){...} } class DerivedClass: BaseClass { public void override Test(){...} }
-
无修饰符 – 当您不打算覆盖方法时,这非常有用:
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和多态)。 然后担心以后的特定语言实现。 一旦您真正理解了基本概念,语言细节就变得易于学习,应用和掌握。