C# 在运行时从类的字符串名称访问值

C# 在运行时从类的字符串名称访问值,c#,unity3d,C#,Unity3d,在我的C#类源代码中,我想使用其他类中定义的参数值。我希望在不将其他类名“硬连接”到源代码中的情况下(例如,不编写类似“class2.variable”的内容)。 相反,我希望在运行时将另一个类的名称作为字符串传递 我在Unity中使用C#。所以我想在Unity Inspector中将另一个类的名称设置为公共字符串 例如,考虑这两个单独的脚本: using UnityEngine ; public class ScriptA : ScriptableObject {public static i

在我的C#类源代码中,我想使用其他类中定义的参数值。我希望在不将其他类名“硬连接”到源代码中的情况下(例如,不编写类似“class2.variable”的内容)。 相反,我希望在运行时将另一个类的名称作为字符串传递

我在Unity中使用C#。所以我想在Unity Inspector中将另一个类的名称设置为公共字符串

例如,考虑这两个单独的脚本:

using UnityEngine ;
public class ScriptA : ScriptableObject {public static int fred = 5 ;  }

ScriptB
工作正常;它仅从字符串“instance”访问
ScriptA
,这一事实证明 控制台中将显示“fred”的名称

但我如何获得“fred”的价值;如何使数字“5”出现在控制台上? 我已经试了两天了。我已广泛地寻找答案。
有人能帮忙吗?

FieldInfo
有一个
GetValue
方法:

public abstract object GetValue(
    object obj
)
尝试:

public abstract object GetValue(
    object obj
)
Type myType = item.GetType();
foreach (FieldInfo info in myType.GetFields())
    {
        string infoName = info.Name; //gets the name of the property
        Console.WriteLine(" Field Name = " + infoName +"and value = "+ info.GetValue(null));  

    }