|
|
1
7
据我所知,你已经写下了所有“有效”的变体。因为在普通代码中不可能显式地寻址getter或setter(没有反射,也就是说),所以我不认为有什么方法可以做您想要的事情。 |
|
|
2
1
诀窍在于
对于getter和/或setter方法,我们有两个选项。
下面将进一步讨论,但首先是代码。它说明了所有四种情况,getter/setter-vs-bound/unbound。
注意,这指的是本文底部包含的一些帮助程序代码
总之,实例方法的“真签名”与绑定的委托情况相同,但被取消。作为第一个参数,绑定委托通过提供它们在其中携带的实例来提供
还要注意,即使这里的未绑定委托正在访问
实例
属性或方法,实际上不需要
这是一个演示。
以及输出: c1: 111 111 111 c2: 222 222 222 c1: 555 555 555 c2: 666 666 666
最后,这里有一些我放在这里的助手来减少混乱。请注意
|
|
|
3
0
另一个选项(在.NET3.0和更新版本中)是使用
(是的,我知道这是一个老问题,但当我试图做一些非常相似的事情时,这是最重要的一个问题。) |
|
|
MWRazer · 在类-C上具有作为属性的函数++ 2 年前 |
|
|
Vopel · 添加隐藏的属性,除非该属性具有值 2 年前 |
|
Shane Amare · 构造函数和对象构造之间的区别是什么? 3 年前 |