其他一切似乎都遵循这种模式,但当我尝试时:
public static ColumnOperation operator&&(ColumnOperation lhs, ColumnOperation rhs)
{
return new ColumnBooleanOperation(lhs, rhs, ExpressionType.And);
}
我得到“预期的可过载二进制运算符”。我做错了什么?
答案 0 :(得分:15)
答案 1 :(得分:10)
您不能直接重载&&
,但可以重载false
,true
和&
运算符 - 请参阅operator &&
public static bool operator true(ColumnOperation x)
{
...
}
public static bool operator false(ColumnOperation x)
{
...
}
public static ColumnOperation operator &(ColumnOperation lhs, ColumnOperation rhs)
{
return new ColumnBooleanOperation(lhs, rhs, ExpressionType.And);
}
答案 2 :(得分:6)
答案 3 :(得分:3)