我的情况是,我有一个名为myClasses
的类和两个名为subOne
和subTwo
的子类。
class myClasses
{
class subOne
{
public const SOfieldOne = "blahblah";
public const SOfieldTwo = "blahblahblah";
}
class subTwo
{
public const STfieldOne = "blahblah";
}
}
我希望能够根据传递给我的一个方法的参数将变量设置为类subOne
或subTwo
。然后,我希望能够使用此常规变量访问subOne
或subTwo
中的成员。
例如,如果参数为" useSubOne"我想将变量subToUse
设置为......
subToUse = myClasses.subOne;
然后,我应该可以通过输入以下内容来访问SOfieldOne
...
subToUse.SOfieldOne
我将如何做到这一点?
答案 0 :(得分:1)
Polymorphism不适用于常量。以下是您的代码的样子:
private class myClasses
{
private class subOne
{
public virtual string SOfieldOne
{
get { return "blahblah"; }
}
}
private class subTwo : subOne
{
public override string SOfieldOne
{
get { return "something else"; }
}
}
}
现在你可以像这样创建一个新变量:
subOne someVariable = new subTwo();
Console.WriteLine(someVariable.SOfieldOne); // Prints "something else"