从 MSDN 阅读:“委托是一种引用方法的类型。一旦为委托分配了一个方法,它的行为就与该方法完全一样。”
那么“委托”是指类型还是对象?!
...不可能两者兼而有之。在我看来,这个词有两种不同的含义:
- 包含对某个指定签名的方法的引用的类型,
- 该类型的对象,实际上可以像方法一样调用。
对于第一种情况,我更喜欢更精确的词汇表并使用“委托类型”。我最近阅读了很多关于事件和代表的内容,这种模棱两可让我多次感到困惑。
MSDN 中“delegate”一词的其他一些用法:
- “仅当事件生成事件数据时才需要自定义事件委托”
- “委托声明定义了一个派生自 System.Delegate 类的类”
MSDN 中“delegate”这个词的其他一些用法是第二种含义:
- “指定在某些事件发生时将被调用的委托”
- “委托是指方法的对象。它们有时被描述为类型安全的函数指针”
你怎么看?为什么微软的人会引入这种歧义?我是唯一一个遇到用同一个词引用不同概念的概念问题的人吗?