来自Scala背景我非常喜欢scala.util.Try
成语,它可以让您在保持安全的同时编写少量的try-catch代码。
以下是一个用例示例:
public static bool ConnectedToDB()
{
var cmd = new SqlCommand(@"select count(*) from SomeTable (nolock)");
try
{
Execute<int>(cmd, DBConnctionString);
}
catch
{
return false;
}
return true;
}
如果我能写下来会很棒:
public static bool ConnectedToDB()
{
var cmd = new SqlCommand(@"select count(*) from SomeTable (nolock)");
return new Try(Execute<int>(cmd, DBConnctionString)).IsSuccess();
}
是否有一个为C#提供类似类型的库?
我知道我可以自己写这个,但我宁愿重用已知/现有的解决方案。
答案 0 :(得分:1)
自己编写这样的方法很容易:
public static bool Try(Action action)
{
try
{
action();
return true;
}
catch { return false; }
}
这允许你写:
public static bool ConnectedToDB()
{
var cmd = new SqlCommand(@"select count(*) from SomeTable (nolock)");
return Try(() => Execute<int>(cmd, AD_SMDBConnctionString));
}