我们应该检查lambda表达式的传入参数吗? 换句话说,我们应该检查参数o和s?
class MainWindow : Form /// implementation I
{
...
private ToolStripMenuItem mnuFileExit = new ToolStripMenuItem();
private void BuildMenus()
{
...
mnuFileExit.Click += (o, s) =>
{
MessageBox.Show(string.Format("{0} sent this event", o.ToString()));
Application.Exit();
};
...
}
...
}
class MainWindow : Form /// implementation II
{
...
private ToolStripMenuItem mnuFileExit = new ToolStripMenuItem();
private void BuildMenus()
{
...
mnuFileExit.Click += (o, s) =>
{
if (o != null)
{
MessageBox.Show(string.Format("{0} sent this event", o.ToString()));
Application.Exit();
}
};
...
}
...
}
答案 0 :(得分:4)
无需检查第一个参数是否为空;因为它是发件人并且始终是非null。
我不同意参数名称的选择(o
和s
)。通常,第一个参数名为s
(对于发件人),第二个参数名为e
(对于事件)。
答案 1 :(得分:3)
您不必将null检查添加到发件人(o),因为它是事件发件人。它是mnuFileExit,它不会为null。