C# 速记 if notation 是否有条件中止返回技术?
喜欢:
return (a==b) ? true : abort;
如果条件不满足,返回将被中止。
你问这个问题,所以可能有你不想这样做的原因:
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...
})();
}
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;
}
}