在一个应用程序中,我有一些代码具有 Nullable<int> 的 FieldInfo,我需要检索可空值(而不是基础值),如下面的示例所示:
class Test
{
public int? value;
}
public class Program
{
static void Main(string[] args)
{
var obj = new Test { value = 10 };
var fld = typeof (Test).GetField("value");
var v = fld.GetValue(obj);
System.Diagnostics.Debug.WriteLine(v.GetType().FullName);
System.Diagnostics.Debug.WriteLine(fld.FieldType.FullName);
}
}
我的问题是v总是被分配底层值(在这个示例中是一个int)而不是可为空的(在这个示例中是一个 Nullable<int>)。
PS:实际应用程序在编译时没有可为空的类型,因此无法进行强制转换。
提前感谢您的帮助。