我将一些自定义服务器控件从VB转换为C#。在一个控件中,此事件存在:
Private Sub MyControl_Init(sender As Object, e As System.EventArgs) Handles Me.Init
' ...
End Sub
根据我今天其他地方的研究,我知道在C#中可以通过以下方式实现:
public MyControl()
{
Init += MyControl_Init;
}
private void MyControl_Init(object sender, System.EventArgs e)
{
// ...
}
在检查不同的自动转换工具时,特别是(InstantC#)做的事情完全不同:
public MyControl()
{
SubscribeToEvents();
}
private bool EventsSubscribed = false;
private void SubscribeToEvents()
{
if (EventsSubscribed)
return;
else
EventsSubscribed = true;
this.Init += MyControl_Init;
}
我知道此代码会检查事件是否已订阅。我的问题是,对于以前的版本,EventSubscribed是否有任何优势?当在页面中实例化服务器控件时,构造函数肯定只使用一次?或者,我是否遗漏了一些显而易见的在线转换工具?
提前致谢。