是否有一种语言具有这种简化的语法?

时间:2017-08-12 05:40:09

标签: c#

我喜欢C#,但是,例如,一个像下面这样简单的条件对于它想要实现的目标非常冗长:

if ( (ctr == "BT") || (ctr = "B") ) {
  ctrName = "Brian";
} else if ( (ctr == "G") || (ctr = "GD") ) {
  ctrName = "George";
}

我在想,在理想的语言中,它可以被编码为:

if ctr: 
  in {"BT", "B"}: ctr = "Brian"
  in {"G", "GD" }: ctr = "George"

有没有更像这样的语言?

1 个答案:

答案 0 :(得分:1)

有一种语言就是这样! C# - 通过扩展方法。

以下是使用In扩展方法的示例。

using System;
using System.Linq;

namespace Bob
{
    public static class Extensions
    {
        public static bool In<T>(this T toCheck, params T[] isItInOneOfThese)
        {
            return isItInOneOfThese.Contains(toCheck);
        }
    }

    public class Program
    {
        static void Main(string[] args)
        {
            var ctrName = "";
            var ctr = "BT";

            if (ctr.In("BT", "B"))
            {
                ctrName = "Brian";
            }
            else if (ctrName.In("G", "GD"))
            {
                ctrName = "Brian";
            }
            Console.WriteLine(ctrName);
            Console.ReadLine();
        }
    }
}