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