我有一个类定义了这样的对象:
public class MyClass{
public int TheInt { get; set; }
public void SomeMethod() { ... }
}
实际上,还有其他一些属性和方法。现在我想创建一个新类MyEnhancedClass
,它具有MyClass
的所有属性和方法,并且还有2个方法和4个属性。
目前,我的代码有两个看起来非常相似的不同类;我想重构这些类,我想知道部分类和继承。最好的方法是什么?继承还是部分类?我知道这是一个基本的OOP问题,但请耐心等待。
感谢您的建议。
答案 0 :(得分:5)
我假设你在谈论继承。要从另一个类继承一个类,请在C#中使用以下表示法:
public class MyExtendedClass : MyClass
{
// custom code
}
更新:尽管继承可能不是每种情况下的最佳解决方案(请参阅下面的Oded的评论),但应避免使用部分类,因为它们会更糟。它们不是语言的一部分,而是语法糖,鼓励引入各种代码气味。
答案 1 :(得分:2)
public class MyEnhancedClass : MyClass {
public override void SomeMethod() { ... }
// other functions here
}
答案 2 :(得分:2)
部分类允许跨多个文件跨越类。例如,一个文件中的部分定义,另一个文件中的其余部分。
继承允许将其他功能添加到现有类。继承父级的类可以添加其他函数,属性或覆盖父方法(提供父级允许此方法)来扩展功能。
从你所描述的情况来看,后者可能是更好的选择。
public class ChildOfMyClass : MyClass {
public string TheString{get{return "Number : " + TheInt;}}
public void Foo() {
}
}
ChildOfMyClass
可以访问MyClass
。