![]() |
1
21
可以使用反射创建代理:
或创建对设置属性的匿名方法的委托;
edit:对createDelegate()使用了错误的重载,需要使用接受和对象作为目标的重载。固定的。 |
![]() |
2
12
有三种方法可以做到这一点:第一种是使用getgetgetmethod()/getsetmethod()并使用delegate.create delegate创建委托。第二个是lambda(不太适合反射!)[即x=>x.foo]。第三个是via表达式(.net 3.5)。 lambda是最简单的;-p
显示用法:
请注意,如果希望委托指向特定实例,则可以对lambda使用闭包,或者使用接受和实例的CreateDelegate的重载。 |
![]() |
3
3
属性实际上是.NET中方法的包装器,因此使用反射,您应该能够获取委托(设置属性和获取属性),然后执行它们… 见 System.Reflection.PropertyInfo 如果有两种方法可用于获取/设置值,则分别为get getgetmethod和getsetmethod。 所以你可以写:
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 4 月前 |
![]() |
pseudodev · 失败的测试仅显示堆栈跟踪,不显示完整日志 5 月前 |
![]() |
CactusCake · if语句中应有分号 6 月前 |
![]() |
Bin4ry · 子文件夹中的应用程序设置 6 月前 |