2
好吧,某些遗传代码:我有权限的整个负载的结构:访问VB.Net结构元素
public structure Perms
dim writeStaff as Boolean
dim readStaff as Boolean
dim writeSupervisor as Boolean
dim readSuperVisor as Boolean
' ... and many more
End Structure
而且我希望有一个功能CANDO,我像这样创建:
public function canDo(p as Perms, whichOne as String) as boolean
Dim b as System.Reflection.FieldInfo
b = p.GetType().GetField(whichOne)
return b
end function
我打电话CANDO与预填充结构和“writeSupervisor”参数
在调试,b显示为{布尔writeSupervisor},但是当我试图返回b为布尔,我得到错误:值典型值e'System.Reflection.FieldInfo'不能转换为'布尔'。
任何想法如何可以通过元素名称和测试/比较/返回值“索引”到结构?
工作了一个魅力,谢谢。命名:我只是在示例中填入任何旧名称。我不得不说,虽然info.GetValue(p),传递原始对象p作为参数,似乎非常直观。 – 2015-04-02 11:04:10
太棒了!我明白你的意思,但你必须记住,字段信息对象是通过使用对象评估者的类型而不是对象的实例来创建的。所以'p.GetType()。GetField(whichOne)'和'GetType(Perms).GetField(whichOne)'是一样的。 – 2015-04-02 11:15:11