他のすべてはこのパターンに従っているようですが、私が試してみると:
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
and&
演算子をオーバーロードできます -演算子 &&を参照してください
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);
}
演算子をオーバーロードできるMSDN ページを参照してください。
条件付き論理演算子はオーバーロードできませんが、オーバーロードできる & および | を使用して評価されます。
&&
これはand||
演算子を指します。
要するに、オーバーライドすると、それに伴い無料で&
入手できます。&&
これから:_
&&, || : 条件付き論理演算子はオーバーロードできませんが、オーバーロードできる & および | を使用して評価されます。
したがって、それをオーバーライドすることはできませんが、&
orをオーバーライドすることはできます|
。