我在C#中有一个公共成员的课程。例如:
public class Foo
{
public int Bar;
}
我想获得Bar的FieldInfo,而不必这样做:
return this.GetType().GetField("Bar");
我只是在寻找一种更简洁,更简洁的方法。类似的东西:
return field(Bar);
当然,我可以建立一种方法:
public FieldInfo field(string name)
{
return this.GetType().GetField(name);
}
我只是想知道C#是否内置了这种代码。在编译时会检查的东西,因为如果我拼错了字段的名字,上面的方法会导致运行时错误。
答案 0 :(得分:1)
你可以用Expressions和Linq来试一试。但我无法向你提供更多详细信息,抱歉。
答案 1 :(得分:0)
不,你所拥有的是干净利落的。
答案 2 :(得分:0)
我不确定除了反射之外还有其他方法,这基本上完全符合这个目的。
答案 3 :(得分:0)
我也在寻找类似的东西,因为反射在混淆代码中效果不佳。我担心没有更好的解决方案......(我最终将自定义属性添加到所有字段并让一些代码遍历所有字段以查找这些属性,但这甚至比您的解决方案更难)。
我希望微软能够在C#4.0中解决这个问题(我在this thread看到了对methodof
/ propertyof
运算符的建议)