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