加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

if语句中的c#匿名方法?

发布时间:2020-12-16 00:09:02 所属栏目:百科 来源:网络整理
导读:在c#中,我可以写这样的东西: if ( ( try { ... return true; } catch (Exception ex) { return false; } ) == true ){...} 无需在新函数中移动我的所有try / catch块 – 编辑 – 好.我完成了我的问题. (也许可以回答一下). 在try / catch中应该是一种XmlDoc
在c#中,我可以写这样的东西:

if (
     (
            try {
                ...
                return true;
            }
            catch (Exception ex)
            {
                return false;
            }
     ) == true
   )
{
...
}

无需在新函数中移动我的所有try / catch块

– 编辑 –

好.我完成了我的问题. (也许可以回答一下).
在try / catch中应该是一种XmlDocument.TryLoad(stream)(就像有一个int.tryParse(string)).
我只需要它一次,这就是为什么我想避免做一个额外的功能.
所以我的代码就像是

try {
                new XmlDocument().Load(foo);
                return true;
            }
            catch (Exception ex)
            {
                return false;
            }

我只是想知道它是否出错.我不在乎原因(流空,编码不好).

有很多有趣的答案,但我认为对我来说更合适的是为xmlDocument创建一个扩展方法.与在我的语句中强制使用匿名方法相比,它将更清晰(并且可重用且更易于阅读)

解决方法

你不能使用那种确切的语法,不.你可以写:

Func<bool> func = () =>
{
    // Code in here
};

if (func())
{
    ...
}

…但我个人将其提取到一个单独的方法中.它可能更具可读性 – 并且可能更容易测试.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读