tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Deserialize で未設定値とそれ以外を区別する方法
投稿日: 2015/11/25(Wed) 21:19
投稿者たかし
#あいまいな説明になってしまうかもしれませんが、ご容赦ください。

<SampleClass 〜〜〜〜〜>
  <Person>
    <Name>たかし</Name>
    <Year>17</Year>
  </Person>
  <Person>
    <Name>よーこ</Name>
  </Person>
  <Person>
    <Name>たろう</Name>
    <Year>0</Year>
  </Person>
<SampleClass>

Name は必須。 Year は任意項目のようなイメージです。
これを Deserialize で以下のクラスに読み込みます。

Public Class Sample
  <〜〜〜〜
  Public Person As List(Of Person)
End Class

Public Class Person
  Public Name As String
  Public Year as Integer
End Class

そうした場合、よーこの Year は未定義なので、
読み込んだ際も未定義(を表すような値 Nothing など)にさせたいのですが、
Integer 型を使用している為にデフォルト値 0 となってしまいます。
(当然と言えば当然かもしれませんが…)
結果として、上記 xml の場合に、よーこもたろうも 0 となってしまいます。

このような場合に、数値を扱う際に
xml上、未定義なのか、あるいは本当にゼロという値が定義されているのか
区別する良い方法はありませんでしょうか?

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。