VBの場合、Tのインターフェイスへの明示的なキャストが必要なのにOption Strict On、なぜそれを必要としないのですか?Nullable(Of T)T
つまり
Dim x As Integer? = 5
Dim y As Integer
Dim z As IComparable
y = x ' Fails to compile with error
' "Option Strict On disallows implicit conversions from 'Integer?' to 'Integer'."
z = x ' Succeeds
編集:@SSSによって示されるように(一種の)、答えの一部は、Nullable値は、まあ、null許容であり、可能性があるということですNothing。これは、インターフェースのような参照には問題ありません。したがって、この変換は、Tcaseへの変換(値がない場合に失敗する)とは異なり、常に成功するNullableため、暗黙の変換と見なすことができます。
私の質問は今「どうやって?」になります。Nullable(Of T)(独自のインターフェースを持たない)からT理論的に交渉されたインターフェースへの変換はどのように行われますか?
私は実装がbox Nullable<T>であると知っています、それはラッパーを効果的に取り除きNullableます、しかし私はここで概念を確認しています...
(したがって、ドキュメントを確認して、これが説明されているかどうかを確認します。)