私は単純な+ - *^/演算子を持つ二重配列のクラスを構築しようとしています。 私は電源演算子に問題があります^、私はそれが最も高い優先順位(評価された最初の)演算子であることを望みますが、実際には最も低いです。たとえば :C#クラスオペレータの注文
Vector v = new Vector(new double[] {2.0});
return v*v^2;
ではなく、8 のエントリ16とのベクトルを返しますクラスでオペレータの優先度を制御する方法はありますか?
私は単純な+ - *^/演算子を持つ二重配列のクラスを構築しようとしています。 私は電源演算子に問題があります^、私はそれが最も高い優先順位(評価された最初の)演算子であることを望みますが、実際には最も低いです。たとえば :C#クラスオペレータの注文
Vector v = new Vector(new double[] {2.0});
return v*v^2;
ではなく、8 のエントリ16とのベクトルを返しますクラスでオペレータの優先度を制御する方法はありますか?
this表から分かるように、bitwise-exclusive or operatorは実際には乗算よりも優先順位が低くなります。
あなたが優先順位を変更することはできませんが、そうにあなたの割り当てを変更()
ブロック
v^2
の結果と
v
を掛けるだろう
return v*(v^2);
。
かっこのまわりには道がありますか?たぶん別のシンボルを使用していますか? – AsaridBeck91
@ AsaridBeck91本当にいいえ、あなたは1つのvの操作の結果に依存しています、あなたはいつもそれを単一にする必要があります – Icepickle
@ AsaridBeck91は 'v * v^2'は単に' v * v * v'あなたは動力演算子を必要としません(ただし、 '^'はC#の動力演算子ではありませんが、そのXORビット演算子です)。 –
2番目のvを 'v *(v^2)'のように角かっこで囲みます。しかし、最初にv * vを実行してその結果を得るのではなく、v *(この操作の結果)を評価することになります。 – Icepickle
回答:v *(v^2) –
C#、それはあなたのxorの実装です。そのため、かっこを使用する必要があります – Marcin