C# 使用设置为该类的变量访问类字段

C# 使用设置为该类的变量访问类字段,c#,C#,在这种情况下,我有一个名为myClasses的类和两个名为subOne和subTwo的子类 class myClasses { class subOne { public const SOfieldOne = "blahblah"; public const SOfieldTwo = "blahblahblah"; } class subTwo { public const STfieldOne = "bla

在这种情况下,我有一个名为
myClasses
的类和两个名为
subOne
subTwo
的子类

class myClasses
{
    class subOne 
    {
       public const SOfieldOne = "blahblah";
       public const SOfieldTwo = "blahblahblah";
    }

    class subTwo 
    {
       public const STfieldOne = "blahblah";
    }
}
我希望能够根据传递给我的一个方法的参数,将变量设置为class
subOne
subTwo
。然后,我希望能够使用此常规变量访问
subOne
subTwo
中的成员

例如,如果参数是“useSubOne”,我想设置一个变量
subToUse
,以便

subToUse = myClasses.subOne;
然后,我应该能够通过键入以下内容访问
Sofiedone

subToUse.SOfieldOne
我该怎么做呢?

不适用于常量。以下是您的代码的外观:

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"

首先,你没有变量,你有常数。您甚至需要实际变量才能开始。我知道我可以使用以下语句引用字段。。。myClasses.subOne.SOfieldOne,我不明白为什么没有一种方法可以用一个指向子类的变量来实现这一点?我不完全确定您想要实现什么。你能给我们提供更多的上下文吗?也许是一个真实的用例,而不是一个抽象的用例?@codingManiac,因为变量指向数据,而不是类。您可以使用反射从数据中获取类,但不能像您认为的那样直接。@codingManiac,这与我的观点无关。您的类没有变量。在运行时,这些类中没有可供您访问的内容。它们是空的。您需要实际访问变量/字段。