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

fre*_*one 3 c# if-statement

在c#中,我可以写这样的东西:

if (
     (
            try {
                ...
                return true;
            }
            catch (Exception ex)
            {
                return false;
            }
     ) == true
   )
{
...
}
Run Code Online (Sandbox Code Playgroud)

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

- 编辑 -

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

            try {
                new XmlDocument().Load(foo);
                return true;
            }
            catch (Exception ex)
            {
                return false;
            }
Run Code Online (Sandbox Code Playgroud)

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

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

Jon*_*eet 10

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

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

if (func())
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

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

  • @Enigmativity所以`private`方法打破封装?或者他们是否启用封装? (2认同)