主变量有未初始化的变量。我需要使用反射检索未初始化的varible类型。因为我动态生成值但无法获取主变量类型的变量类型。
在快速监视图片中显示ameliyatGirisBilgileri
变量的类型名称,即使它未初始化。
答案 0 :(得分:1)
FieldInfo fieldInfo = typeof(MyClass).GetField("ameliyatGirisBilgileri", BindingFlags.Public | BindingFlags.Instance);
Type fieldType = fieldInfo.FieldType;
抱歉,我太懒了,不能完全输入你班级的名字。
答案 1 :(得分:0)
您应该能够使用主要类型上的GetField(...)
或GetFields(...)
方法获取类型中变量的FieldInfo
。下面是一个简短的程序,演示了如何实现它:
class Program
{
public string mStringType = null;
static void Main(string[] args)
{
var program = new Program();
try
{
var field = program.GetType().GetField("mStringType");
Console.WriteLine("Field '{0}' is of type '{1}' and has value '{2}'.", field.Name, field.FieldType.FullName, field.GetValue(program));
program.mStringType = "Some Value";
Console.WriteLine("Field '{0}' is of type '{1}' and has value '{2}'.", field.Name, field.FieldType.FullName, field.GetValue(program));
}
catch (NullReferenceException)
{
Console.WriteLine("Error");
}
Console.ReadKey();
}
}
这在控制台窗口中提供以下输出:
字段'mStringType'的类型为'System.String',其值为''。
字段'mStringType'的类型为'System.String',其值为'Some Value'。
注意:如果字段不是public
,则必须将一些BindingFlags
传递到GetField(...)
或GetFields(...)
方法。