タイトル : Re^2: Deserialize で未設定値とそれ以外を区別する方法 投稿日 : 2015/11/26(Thu) 19:55 投稿者 : たかし
Nullable を使用して解決できました。 Nullable の存在を知りませんでした。 ありがとうございました。 --------------------------------- Public Class Person Public Name As String Public Year As Nullable(Of Integer) End Class とすることで よーこの Year は Nothing となり たろうの Year は 0 となりました。 処理で使用する際は If .Year IsNot Nothing Then MsgBox "Year = " & .Year End If という感じです。 Serialize で xml 出力すると <Year xsi:nil="true" /> となってしまい、違和感がありますが、 xml に出力することはない( xml を読み込むだけ)ので 問題ありません。 ちなみに、最悪、次のような方法を考えていました。 Public Class Person Public Name As String Public Year As Integer = Integer.MinValue End Class If .Year <> Integer.MinValue Then MsgBox "Year = " & .Year End If ただ、年齢とかであれば、絶対ありえない値というものがある(負の値など)ので この方法でなんとか可能ですが、 中には、絶対ありえない値、というものがないものもあるので… |