如果符号,是否有C#简写的条件中止返回技术?
喜欢:
return (a==b) ? true : abort;
如果条件不满足,则返回将被中止。
答案 0 :(得分:1)
你问这个问题,所以你可能有理由不这样做:
if (a==b) return true;
以上是非常易读,可维护等等。
无论如何你可以使用一个带有lambda的委托并做这样的事情(虽然我强烈反对它):
delegate bool Abort();
bool YourMethod() // not mine ;)
{
int a = 1, b = 2;
return (a == b) || new Abort(() => {
// put the rest of your 'abort' code here
return false; // or throw an exception...
})();
}
答案 1 :(得分:0)
public class Program
{
static void Main(string[] args)
{
var res = Test();
}
static bool Test()
{
var a = 5;
var b = 6;
return a.TrueOrAbort(b);
}
}
public static class MyHelper
{
public static bool TrueOrAbort<T>(this T first, T second) where T : struct, IComparable
{
if (first.Equals(second))
return true;
Environment.Exit(0);
return false;
}
}