听起来很愚蠢的想法,但我想知道是否有可能以某种方式。运行时更换/交换基类与另一个基类
是否有可能在运行时更改派生类的基类?当然,有很多ifs和buts以及为什么有人会这么做,它的设计很糟糕以及所有这些问题。
让所有人保持缄默(尽管他们可能是完全有效的),让我们说,只是踢或显示你的书呆子,是否可能在C#或任何语言的事情呢?
因此,像:
public class baseOriginal {
public string justAProperty;
}
public class baseSwapped {
public int sillyNumber;
}
public class derivedClass : baseOriginal {
public bool iAmDumb;
}
void Main() {
baseOriginal derived = new derivedClass();
Console.WriteLine(derived.justAProperty);
baseSwapped derivedSwapped = (??);
Console.WriteLine(derivedSwapped.sillyNumber);
}
现在,这是一些自修改的代码! “我是哺乳动物!” “不,等等......我是爬行动物!” “哦,现在我想成为一只鸟!” – 2010-12-10 17:19:39
你应该考虑继承的构成。 – 2010-12-10 17:47:53
目前还没有真正的用例。即使我同意它完全不好的设计。我问这个问题的原因是因为我听到有人说出来,并声称他们已经做到了(可能用C++)。即使我非常认为他是个出色的家伙,他也无法相信他。我已经尝试了很多东西,并且在将其视为“不可能”之前,希望得到社区的意见。 DLR的想法似乎很有趣。将在周末做一些挖掘工作,看看能否做些什么。 – Mrchief 2010-12-10 20:03:29