我需要创建一个包含多个字符的运算符,因为我希望代码更具可读性和更多关联性。 例如:
public static bool operator !&(bool a, bool b)
{
return ((a == true && b == true) || (a == false && b = false));
}
答案 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