|= 演算子とは何か、それがどのように機能するかを説明しようとするドキュメントと回答(1) (2)を見てきましたが、基本的なレベルでは理にかなっていますが...理由や理由がよくわかりませんそれが何をどのように達成するか。
説明でa |= b
は と同等であると書かれていますが、それ自体の値 ( ) または の値a = a | b
を与えるかどうかを評価する方法がわかりません。私の理解では、「または」は、2 つのうちの 1 つになる可能性があることを意味しますが、2 つのうちのどちらであるかは指定されていません。a
a
b
Visual Studio では、Refactoring Essentials という拡張機能を使用しています。この拡張機能では、コードの一部を |= 演算子を含む行に置き換えることを提案されています。コードはその中の演算子で機能しますが、それがどのように機能するのかわかりません。 、これが私がオンラインで調査しようとするきっかけとなったものです(結果として、この質問をします).
私のコードは
if (MessageBox.Show("Are you sure you want to cancel this operation?", "Confirm Cancel", MessageBoxButton.YesNo, MessageBoxImage.Exclamation, MessageBoxResult.No) == MessageBoxResult.No)
{
e.Cancel = true;
}
に
e.Cancel |= MessageBox.Show("Are you sure you want to cancel this operation?", "Confirm Cancel", MessageBoxButton.YesNo, MessageBoxImage.Exclamation, MessageBoxResult.No) == MessageBoxResult.No;
それでも機能しました。e.Cancel
の評価に基づいて決定されると思いMessageBox.Show(...) == MessageBoxResult.No
ますが、 |= 演算子が必要な理由はわかりません。e.Cancel
式の結果はブール値であり、ブール値を取るため、標準の代入 (=) 演算子を使用しないのはなぜですか? 条件付き (? :) 演算子を使用する場合はどうでしょうか。|= はそれとどのように比較されますか?