EDITED
感谢Marc Gravell的回答和另一个,现在正在努力:
public class INFO_BASE{
};
public class INFO_INHE : INFO_BASE {...};
class DATA{
//stuff
public INFO_BASE info;
};
DATA foo = new DATA();
//.......do things.........//
data.info = new INFO_INHE();
我不知道为什么我专注于使用结构而不是课程,你们都是对的,我道歉,感谢你们的帮助。
答案 0 :(得分:0)
C#中的结构只能实现接口。
Structs can also contain constructors, constants, fields, methods, properties, indexers,
operators, events, and nested types, although if several such members are required,
you should consider making your type a class instead.
结构用于将数据分组在一起,作为一般规则,如果您需要方法/ contrsucts,那么您最好使用类。 [根据此Link结构被密封,它们不能被继承,因此您的代码将无法编译。我建议改用课程。 ]
答案 1 :(得分:0)
直到这里一切正常,
不,实际上并非如此。 没什么到目前为止还可以。
但是,我认为你只想在这里上课:
class InfoBase { }
class InfoInhe : InfoBase { }
class Data
{
public InfoBase Info { get;set; }
}
然后:
Data foo = new Data();
//.......do things.........//
foo.Info = new InfoInhe();
你需要在C#中创建一个struct
非常罕见,而且我在“这里是我的代码”示例中看到它的次数很多,它被不恰当地使用了。