投稿者 YuO  (社会人) 投稿日時 2015/12/8 23:43:43
.NET Frameworkのバージョンには関係しません。
ただし,.?演算子はVB14の追加機能なので,それより前のVBのコンパイラを使う場合は,コードをそれに対応させる必要があります。
幸い,?.演算子は
・オブジェクトがNothingでなければそのメンバーへのアクセスを行う
・オブジェクトがNothingであればメンバーへのアクセスを行わず,式の値はNothingになる
という演算子なので,ほぼ機械的にIf演算子に置き換えることができます。
# 値型に関して,元のメンバーアクセスの結果がT型ならばT?型になります。

If(succ.X?.Equals(succ.Y), False)
を直接置き換えるなら,
If(If(succ.X IsNot Nothing, succ.X.Equals(succ.Y), DirectCast(Nothing, Boolean?)), False)
でしょうか。
今回は内側のIf演算子がBoolean?型で,Nothingを返すのは条件がFalseの時のみであるため,二つのIf演算子をまとめて
If(succ.X IsNot Nothing, succ.X.Equals(succ.Y), False)
とした方が賢いですが。

ref)
What's New for Visual Basic : https://msdn.microsoft.com/ja-jp/library/we86c8x2(v=vs.140).aspx
Null 条件演算子 (C# および Visual Basic) : https://msdn.microsoft.com/ja-jp/library/dn986595(v=vs.140).aspx