p.tatapa.org

p.tatapa.org

C# でx.Foo()がnullかどうかで分岐するときif (x.Foo() is Foo foo)って書いてたんだけど、これだとx.Foo()の型が変わってもコンパイルが通ってしまって良くない。かと言ってif (x.Foo() is {} foo)はちょっと暗号的過ぎる(ここで言う{}は空のプロパティパターン)。イディオムだと言ってしまえばそれまでであるけど。if (x.Foo() is not null foo)とか書けないものか。あるいはif ((var foo = x.Foo()) != null)とか。

ちなみにif (x.Foo() is not null and var i)は参照型ではうまくいくっぽいけど値型の場合はダメっぽい。
replies
0
announces
0
likes
0