这个问题已经在这里有了答案:




已关闭10年。






嗨,我已经尝试过寻找答案,但是我真的不知道要搜索什么术语,而且这些站点建议的问题都不相关。我敢肯定,这一定已经回答过了。

基本上,有人可以告诉我C#中这两行之间的区别是什么:

SomeEvent += SomeMethod
SomeEvent += new SomeDelegate(SomeMethod)

例如:
DataContextChanged += App_DataContextChanged;
DataContextChanged += new DependencyPropertyChangedEventHandler(App_DataContextChanged);

他们似乎都在做同一件事。

最佳答案

他们是一样的。第二个变体只是第一个变体的简称Method group conversion

简而言之,编译器通过使用事件本身的委托(delegate)类型来推断委托(delegate)的类型。如果我没有记错的话,这是在C#2.0中引入的。

关于c# - C#:SomeEvent + =方法和SomeEvent + = new Delegate(Method)有什么区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4679369/

10-09 06:54