在 Lambda 表达式中引用私有财产?
是否可以在 lambda 表达式中引用私有属性?还是只有公共财产?
例如。假设我的私有财产名为 InnerCollection,则代码行将是:
x => x.InnerCollection
有没有办法以某种方式实现此目的 - 不使用反射等?
使用.NET 4.0。
谢谢。
克里斯
Is it possible to reference a private property in a lambda expression? Or only public properties?
For example. say my private property is named InnerCollection, the line of code would be:
x => x.InnerCollection
Is there a way to achieve this somehow - without using reflection etc.?
Using .NET 4.0.
Thanks.
Chris
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不可以,除非(不太可能)lambda 是在
x
类的方法内定义的。No, unless (unlikely) the lambda is defined inside a method of the class of
x
.您可以在类的外部或内部使用它,这目前仅适用于字段,但如果需要,您可以修改它的属性。
用法看起来像这样:
You can use this outside or inside of the class, This is only working for fields right now but you can modify it for properties if you want.
usage would looks something like this:
除非 lambda 定义位于定义私有字段/属性的类的方法中,否则不会。那么你就必须处理反思。
Unless the lambda definition is in a method of the class the private field/property is defined in, no there isn't. You'll have to deal with reflection then.