这两者有什么区别?
object.ProgressChanged += new EventHandler<ProgressChangedEventArgs>(object_ProgressChanged)
object.ProgressChanged += object_ProgressChanged;
void installableObject_InstallProgressChanged(object sender, ProgressChangedEventArgs e)
{
EventHandler<ProgressChangedEventArgs> progress = ProgressChanged;
if (installing != null)
installing(this, e);
}
Run Code Online (Sandbox Code Playgroud)
编辑:
如果没有差异,哪个是更好的选择?
谢谢!
基本上,一个比另一个短.它只是同义糖.
"正确"语法是第一个,因为ProgresChanged是一个EventHandler事件,所以为了给它分配一个实际的处理程序,你需要创建一个新的EventHandler对象,其构造函数将一个方法的名称作为参数.要求的签名.
但是,如果只指定方法的名称(第二种语法),则会隐式创建eventHandler类的实例,并将该实例分配给ProgressChanged事件.
我更喜欢使用第二种方法,因为它更短,并且不会丢失任何信息.没有太多的上下文可以将+= methodName构造误认为是其他东西.
| 归档时间: |
|
| 查看次数: |
1182 次 |
| 最近记录: |