我正在尝试getField,但总是返回null 这是代码的图像和变量的监视。
代码:FieldInfo xSortField = xFieldInfo.GetValue(x).GetType().GetField(this.prefixedSortBy[i]);
答案 0 :(得分:5)
我认为你需要更仔细地观察你正在做的事情,因为它似乎没有多大意义。
Data=raw_input("Please type name of input data! ")
Data2=open(Data)
new_list=list()
for line in Data2:
line2=line.rstrip()
first_empty=line2.find(" ")
line3=line2[first_empty+1:]
List_of_line=line3.split()
express=0
for i in List_of_line:
flo_i=float(i)
express=float(express)
if express == 0 or flo_i > express:
express=flo_i
express=str(express)
if express == List_of_line[4]:
print List_of_line
会返回一个装箱整数xFieldInfo.GetValue(x)
。 2
然后返回GetType()
然后,您尝试在typeof(int)
上获取FieldInfo
字段ssId
。那不存在。
看起来你打算这样做:
int
答案 1 :(得分:3)
您必须指定BindingFlags.Instance
或BindingFlags.Static
作为第二个参数才能获得返回值。
此外,还应使用BindingFlags.NonPublic
来获取非公开字段。
请参阅MSDN以供参考。
答案 2 :(得分:3)
您需要使用BindingFlags
GetField("FieldName", BindingFlags.Instance | BindingFlags.Public);