Nullableと3値論理
.NETのNullable
nullと非nullの比較
int? value1 = null; int? value2 = 10;
だと
式 | 結果 |
value1 < value2 | false |
value1 <= value2 | false |
value1 == value2 | false |
value1 != value2 | true |
value1 > value2 | false |
value1 >= value2 | false |
nullとnullの比較
int? value1 = null; int? value2 = null;
だと
式 | 結果 |
value1 < value2 | false |
value1 <= value2 | false |
value1 == value2 | true |
value1 != value2 | false |
value1 > value2 | false |
value1 >= value2 | false |
考察
どうやら次のような感じか。
- 「==」や「!=」での比較は、SQLにおけるIS NULL的にちゃんと行われる。
- 「>」や「<」などによる大小の比較は、nullが混じった時点で常にfalseを返す。