ok回到另一个问题......当你将基础对象指定为另一个对象时,基础对象变成了该对象,但仍然没有它的属性。如何在分配给基础对象时保留指定的对象属性?
public class MyObjectBase {
public void Begin() {
}
{
public class OneOfMyObjects : MyObjectBase {
public void Begin() {
base.Begin();
//do stuff
}
}
public class ManagmentClass {
public MyObjectBase myCurrentObject;
//called a only one when the program starts
public void Start() {
Mymethod(new OneOfMyObjects());
}
//generic method
public void Mymethod<T>(T Objectclass) where T : MyObjectBase {
myObject = Objectclass
myObject.Begin(); // compiler error, non existent in MyObjectBase
myObject.GetType().ToString() //returns "OneOfMyObjects"
}
}
当然,编译器找不到“Begin()”,因为begin在MyBaseObject中原本不存在。 我正在做类似于Ruby的自定义语言到C#(上面)之间的转换,但是这种类似Ruby的语言没有遇到我遇到的这个“问题”。它似乎编译它。 .NET4中有什么可以解决这个我忘记的问题吗?
从来没有想过这个谢谢 – Fornoreason1000 2013-05-01 15:21:00