C# - 我们应该检查lambda中的传入参数吗?

时间:2011-05-19 03:56:33

标签: c# .net lambda

我们应该检查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();
            }
        };
        ... 
    }
    ...
}

2 个答案:

答案 0 :(得分:4)

无需检查第一个参数是否为空;因为它是发件人并且始终是非null。

我不同意参数名称的选择(os)。通常,第一个参数名为s(对于发件人),第二个参数名为e(对于事件)。

答案 1 :(得分:3)

您不必将null检查添加到发件人(o),因为它是事件发件人。它是mnuFileExit,它不会为null。