2

我有一个定义这样的对象的类:

public class MyClass{

   public int TheInt { get; set; }

   public void SomeMethod() { ... }
}

实际上,还有更多的属性和方法。现在我想创建一个新类MyEnhancedClass,它具有所有属性和方法,MyClass并且它自己也有 2 个方法和 4 个属性。

目前,我的代码有两个不同的类,它们看起来非常相似;我正在寻找重构这些类,我想知道部分类和继承。最好的方法是什么?继承还是部分类?我知道这是一个基本的 OOP 问题,但请多多包涵。

感谢您的建议。

4

3 回答 3

5

我假设你在谈论继承。要从另一个类继承一个类,请在 C# 中使用以下表示法:

public class MyExtendedClass : MyClass
{
    // custom code
}

更新:即使继承可能不是每种情况下的最佳解决方案(参见下面 Oded 的评论),也应该避免使用部分类,因为它们会更糟。它们不是语言的一部分,而是鼓励引入各种代码气味的语法糖。

于 2012-11-27T16:18:49.520 回答
2
public class MyEnhancedClass : MyClass {

 public override void SomeMethod() { ... }    

 // other functions here

}
于 2012-11-27T16:19:30.783 回答
2

部分类允许类跨越多个文件。例如,一个文件中的部分定义,而另一个文件中的其余部分。

继承允许将附加功能添加到现有类。继承父类的类可以添加额外的功能、属性或覆盖父类方法(前提是父类允许这样做)以扩展功能。

从您描述的情况来看,后者可能是更好的选择。

public class ChildOfMyClass : MyClass {
    public string TheString{get{return "Number : " + TheInt;}}

    public void Foo() {
    }
}

ChildOfMyClass将有权访问MyClass.

于 2012-11-27T16:22:01.190 回答