在VS中,Designer使用第一个,但我看到第二个也有效。有什么区别?是否有任何令人信服的理由使用第一个,第二个什么时候会更好?
答案 0 :(得分:3)
两个片段都会生成相同的代码。区别在于,在第一种情况下,您告诉编译器您要使用哪种委托类型(即EventHandler
),而在第二种情况下,您让编译器从上下文中找出委托的类型,方法组语法。
没有更好的"或者"更糟糕"在这种特定情况下的语法,因为EventHandler
委托不太可能被重命名。只要您保持一致,并在代码库中使用相同的语法。
但是,通常,第二种语法允许您在必须更改委托的名称时避免代码中的多处更改,而不更改其签名。由于编译器隐式地计算出类型,因此在将您的委托MyDelegate
重命名为MyNewDelegate
后,您不需要找到new MyDelegate(myMethod)
所有位置并将其更改为new MyNewDelegate(myMethod)
。