-3

C# 速记 if notation 是否有条件中止返回技术?

喜欢:

return (a==b) ? true : abort;

如果条件不满足,返回将被中止。

4

2 回答 2

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...
    })();
}
于 2013-05-22T12:01:17.187 回答
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;
        }
    }
于 2013-05-22T12:23:51.027 回答