具有多个字符C#的运算符

时间:2015-03-25 12:43:12

标签: c#

我需要创建一个包含多个字符的运算符,因为我希望代码更具可读性和更多关联性。 例如:

public static bool operator !&(bool a, bool b)
    {
        return ((a == true && b == true) || (a == false && b = false));
    }

3 个答案:

答案 0 :(得分:6)

您只能重载实际的C#运算符,无法创建自己的运算符。

可重载运算符列表为here

答案 1 :(得分:2)

C#仅支持已知运算符的operator()函数。这不可能创建自定义运算符。

参见C#规范项14.2.2运算符重载:

  

可重载的一元运算符是:
  + - ! ~ ++ -- true false

     

可重载二元运算符是:
  + - * / % & | ^ << >> == != > < >= <=

     

只有上面列出的运算符可以重载。

答案 2 :(得分:1)

不要这样做。

我意识到这可能不是你想要的,并且与运算符相同,但我建议你使用一种方法,如果可能的话 - 也许是一种扩展方法:

public static bool IsBoolEquivalent(this bool a, bool b)
{
    return ((a == true && b == true) || (a == false && b = false));
}

用法:

var myBool = true;
var yourBool = false;

var areTheyEquivalent = myBool.IsBoolEquivalent(yourBool); // returns false