【发布时间】:2018-09-19 06:55:26
【问题描述】:
我有一个这样的基类:
class Document {
int number {get; set;}
double sum {get; set;}
}
...和两个派生类:
class Bill : Document {
double advance {get; set;}
}
class Quote : Document {
double discount {get; set;}
}
在编译时,我知道我将处理Document 类型的对象。但是,只有在运行时我才知道它是 Bill 还是 Quote。
我需要根据类型执行特定的操作,例如:
if (myDoc.GetType() == typeof(Bill)) {
myDoc.advance = 1000; //<-- can't find "advance"
}
.. 但我不能这样编译,因为派生类的属性不能从基实例访问。
这样做的正确方法是什么? 这是fiddle to play around。
【问题讨论】:
标签: c#