在 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/