ufcpp / UfcppSample

http://ufcpp.net/ 向けのサンプル
Apache License 2.0
136 stars 39 forks source link

「余談: ジェネリック型に対する is null」の微かな不正確さ #248

Closed kanjywm closed 5 years ago

kanjywm commented 5 years ago

C# 8.0 世代のコンパイラーからコンパイル可能になった、ジェネリック型に対する

static bool M<T>(T x) => x is null;

T が値型なら常に false になる旨お書きになりました。ほぼその通りですが Tint? 等の Nullable 型の場合だけは、値型でありながら、もちろん true になり得ます。ちゃんと x.HasValue に応じ true を返すよう実装されています。重箱の隅をつついて恐縮ですが。

https://ufcpp.net/study/csharp/datatype/typeswitch/?p=4#generic-is-null

ufcpp commented 5 years ago

あー… ありがちな奴… 「非 null 値型」に修正。