Post B1dEyafwFxvLP5CFoO by orange_in_space@mstdn.nere9.help
(DIR) More posts by orange_in_space@mstdn.nere9.help
(DIR) Post #B1dEyRfxiVaxUY8e6C by orange_in_space@mstdn.nere9.help
2025-12-26T06:05:41Z
0 likes, 1 repeats
すごく前にらりおさんが気持ち悪がってたC# の仕様https://mastodon.cardina1.red/@lo48576/110038572866964580https://ufcpp.net/blog/2020/12/isnull/void M(A a){ if (a.X is not { } x) return; // null だったら early return。 // ここでxにアクセスできるのわけわからん // ちなみに ' is not { } x 'は' x is not object'のシンタックスシュガーみたいな感じなのでxはobject型}これについていまさら調べたけど、これは別にifのブロックに対して宣言してるわけじゃなく、平たくobject x = (object)a.X;と書いたのと同じ意味の文法であるというただそれだけの話らしい><で、その上でDefinitely Assignedって言うルールで、コンパイラがその部分ではその宣言が有効かを静的に検査してくれるので、さらに安全だよって話らしい・・・><
(DIR) Post #B1dEyafwFxvLP5CFoO by orange_in_space@mstdn.nere9.help
2025-12-26T06:14:45Z
0 likes, 0 repeats
つまり、この例でいうとTestFuncA()は、TestFuncB()のシンタックスシュガー的なのって事><