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