C#访问及调用类中私有成员与方法示例代码

2020-01-05 09:35:12王旭

1)公用部分,具体代码如下:


 Person person = new Person();
 Type type = typeof(Person);
 BindingFlags flags = BindingFlags.NonPublic | BindingFlags.Instance;
 FieldInfo fInfo = type.GetField("name", flags);

2)设置name字段,设置方法如下代码所示:


 fInfo.SetValue(person,"CNXY");

3)访问name字段,访问方法如下代码所示:


var name = fInfo.GetValue(person);

4)name字段结果如下:

C#,私有成员,代码

说明:

BindingFlags.NonPublic:搜索非公有方法的成员;

BindingFlags.Instance:搜索成员实例,包括字段及方法等。

五、如何访问Display私有方法?

同样,借用第四部分代码(person及flags),具体代码如下:


MethodInfo mInfo = type.GetMethod("Display",flags);
mInfo.Invoke(person, new object[] { "Hello" });

输出结果如下: