【发布时间】:2015-12-11 06:39:44
【问题描述】:
假设我有一个名为 Field 的类
public class Field
{
public string name {get;set;}
public string type {get;set;}
}
对于我的程序,我需要构建一个列表,但列表中的某些字段是通用的,并且会在程序的少数部分中重复,我想将那些将被复制的字段分离到一个基类中,以便那些子类可以从基类继承而无需重复某些字段。 概念大致如下:
base classA {
List<Field> list = new List<Field>();
list.add(new Field(){name = "fieldNameA", type = "typeA"});
list.add(new Field(){name = "fieldNameB", type = "typeB"});
list.add(new Field(){name = "fieldNameC", type = "typeC"});
}
base classB {
List<Field> list = new List<Field>();
list.add(new Field(){name = "fieldNameX", type = "typeX"});
list.add(new Field(){name = "fieldNameY", type = "typeY"});
list.add(new Field(){name = "fieldNameZ", type = "typeZ"});
}
sub class {
private void methodA() {
//Inherits list initialized at
// **base classA** above,
//and continues to initialize some other Fields
list.add(new Field(){name = "fieldNameD", type = "typeD"});
list.add(new Field(){name = "fieldNameE", type = "typeE"});
//so at here finally i would have list which consists of fieldNameA to fieldName E
}
private void methodB() {
//Inherits list initialized at
// **base classB** above,
//and continues to initialize some other Fields
list.add(new Field(){name = "fieldNameD", type = "typeD"});
list.add(new Field(){name = "fieldNameE", type = "typeE"});
//so at here finally i would have list which consists of fieldNameX, Y,Z,D,E
}
}
我应该怎么做才能实现这一目标?
【问题讨论】:
-
您展示的代码(更新为正确的 C# 语法后)应该完全符合您的需要。请澄清你有什么问题。还可以尝试更新 tile,使其看起来不需要从
List<Field>继承,而是需要继承其他内容(可能是“如何使用基类中的字段”)。 -
嗨,Alexei,我刚刚解决了这个问题。我已经更新了我的问题,现在我遇到了多重继承问题
-
而不是澄清你已经完全改变了问题。完全改变问题并不受欢迎,尤其是在回答了原始问题的情况下。查看Chameleon questions 以获得更多指导(摘要 - 回滚编辑并提出新问题)。
标签: c# inheritance generic-list base-class