提问人:another J.Doe 提问时间:11/17/2023 更新时间:11/17/2023 访问量:40
读取接口的属性值,即 int,但从属性名称开始作为字符串
Read property value of interface, that is an int, but starting from the property name as a string
问:
我有一个名为 它的公共接口有一个名为 int 的属性API.Internals.IAccount
Number
我可以通过调用 Account.Number 轻松获取帐号,但我想要的是在给他一个字符串“Account.Number”时找到它的当前值。 我试图用它来称呼它:
MessageBox.Show(this.Account.GetType().GetField("Number").ToString());
但是我得到一个未设置为实例的对象引用。我觉得这很奇怪,因为我在一开始就明确表示了这一点。this.Account
有谁知道我做错了什么?
我已经阅读了一些界面指南,但我在获得这个低谷时遇到了一些麻烦
答:
0赞
Dmitry Bychenko
11/17/2023
#1
您应该提供实例(在您的情况下)以从中读取属性并调用 。this.Account
GetValue
MessageBox.Show(this.Account.GetType()
.GetProperty("Number") // property, not field
.GetValue(this.Account) // value of this.Account.Name
.ToString());
评论
1赞
SomeBody
11/17/2023
Op 写入的是接口的实例,因此它不能有任何字段,并且始终返回 null。Account
GetField
0赞
Dmitry Bychenko
11/17/2023
@SomeBody:不错,谢谢! 是属性,而不是字段Number
评论
ToString()
GetProperty
GetField