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

发布于 2024-11-08 11:45:57 字数 897 浏览 0 评论 0原文

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

Should we check pass-in parameters of the lambda expression?
In other words, should we check the parameter o and 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();
            }
        };
        ... 
    }
    ...
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

凉墨 2024-11-15 11:45:57

无需检查第一个参数是否为空;因为它是发送者并且始终不为空。

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

No need to check that the 1st parameter is null; because it is the sender and is always non-null.

I disagree with the choice of argument names (o and s). Normally the first parameter is named s (for sender) and the second parameter is named e (for event).

故笙诉离歌 2024-11-15 11:45:57

您不必向发送者 (o) 添加空检查,因为它是事件发送者。它是 mnuFileExit ,它不会为空。

You don't have to add null check to the sender (o) as it is the event sender. It is mnuFileExit which wouldn't be null.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文