0

我一直在阅读其他示例,并且似乎可以通过传入字段的名称来分配字段的值。

private string fieldName;  //contains the name of the field I want to edit

void IObserver.Update(object data)
{       
    FieldInfo field = this.GetType().GetField(fieldName);

    if(field != null)
    {
        field.SetValue(this, data);         
    }   
}

字段总是以 null 结尾,我不知道为什么

4

1 回答 1

2

.Net 反射中的Get*方法默认只搜索公共成员。
要获得私有字段,请通过BindingFlags.NonPublic | BindingFlags.Instance.

于 2012-08-26T22:23:11.750 回答