Dopo avere installato la CTP di Agosto ho dato un occhiata alle ultime importanti modifiche introdotte nel CLR annunciate da “Soma” nel suo blog.
Gia' che c'ero ho approfondito meglio l'analisi dei nullable types cercando di trovare un alternativa in VB 2005 alla mancanza dei lifted operators presenti in C# 2.0 e gia' che c'ero ho buttato giu' un tentativo di coalescing operator generando questo “mostro”.
Public Function NullIIf(Of K As Structure)(ByVal value As Nullable(Of K)) As Nullable(Of K)
If (value.HasValue) Then
Return value
Else
Return Nothing
End If
End Function
Che ha il difetto di operare solo sui nullable a differenza dell operatore di C# 2.0 che agisce anche sui reftypes
string s=null;
string k= s?? “s is null”;
A questo punto ho pensato di utilizzare INullableValue scoprendo pero' che, dopo la modifica introdotta ai Nullable Types e' stata rimossa (anche se rimane presente nella documentazione) dopo la Beta2.
Da questa mancanza e' nata una interessante discussione con Bill McCarthy il quale ha bloggato alcune riflessioni comuni sull'argomento, blog al quale vi rimando per ulteriori dettagli.