C#
Roslyn
あなたとジャバ
ジャバ
nullable

C# にて「ジャバ == ノットジャバ」を真にする

下記の記事を見まして、形容しがたい感情をおぼえたため、 自作キーボードのキーらを断続的に押下することにいたしました。

Can (a ==1 && a== 2 && a==3) ever evaluate to true?
JavaScriptで「(a ==1 && a== 2 && a==3)」の結果を真にする手法が議論される | スラド デベロッパー
というのがちょっとした話題らしい。

ならば、ジャバorノットジャバも真にできるのでは!と思って作ってみまし
た。

ref. Rubyでジャバandノットジャバを真にする - Qiita

処理系および環境は Visual Studio 2017 付属の C# Interactive ウインドウから。
まずは、以下のコードをご覧ください。

Microsoft (R) Roslyn C# コンパイラ バージョン 2.6.0.62329
'CSharpInteractive.rsp' からコンテキストを読み込んでいます。
詳細については、「#help」と入力します。

> bool? ジャバ;
> bool? ノットジャバ = !ジャバ;
> ジャバ == ノットジャバ
true

ご覧の通り、定義によっては、以下が成り立ちます。

ジャバ == ノットジャバ
true

意図しない挙動に見えるかもしれません。

しかしながら、技術やツールというものがどう活かされるか、人を幸せにするか、人類滅亡の引き金となるか、ジャバするか、それは人次第というものです。使いようによって、 人は「ジャバ == ノットジャバ にする」ことができる。このことを念頭におき、日々、我々は今すぐダ…… 失敬、プログラミングしたいものです。