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

标签 c# if-statement

在 C# 中,我可以这样写吗:

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

无需将我所有的 try/catch block 移动到一个新函数中

-- 编辑--

好的。我完成了我的问题。 (也许会回答一下)。 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())
{
    ...
}

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

关于if 语句中的 c# 匿名方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18587402/

相关文章:

带有 IF 条件的 MySQL JOIN

php - PHP,如果函数有错误

c# - DotNetZip 间歇性挂起

c# - XMlSerialization 没有序列化 Datetime

c# - 无法使用 Rob Conery 的 Massive 保存列表<dynamic>

C# - 从一个线程到另一个线程的实时文本馈送

javascript - 如果在此代码中输入为空,如何添加?

java - 如何阻止 if 语句中的数字变小

c# - Windows 7 的登录屏幕更换

jquery - 在 if 语句中从数组中询问多个值