其他一切似乎都遵循这种模式,但是当我尝试时:
public static ColumnOperation operator&&(ColumnOperation lhs, ColumnOperation rhs)
{
return new ColumnBooleanOperation(lhs, rhs, ExpressionType.And);
}
我得到“预期的可重载二进制运算符”。我究竟做错了什么?
其他一切似乎都遵循这种模式,但是当我尝试时:
public static ColumnOperation operator&&(ColumnOperation lhs, ColumnOperation rhs)
{
return new ColumnBooleanOperation(lhs, rhs, ExpressionType.And);
}
我得到“预期的可重载二进制运算符”。我究竟做错了什么?
您不能&&
直接重载,但可以重载false
,true
和&
运算符 - 请参阅运算符 &&
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);
}