- PR -

Date型にNull値を代入できない?

1
投稿者投稿内容
Tog
ベテラン
会議室デビュー日: 2002/06/09
投稿数: 76
投稿日時: 2003-02-10 08:29
こんにちわ。

データベースからDate型の値を保存する処理を行いたいと思っているのですが、データが無い場合もあるので、下記のようにある条件の場合はNothingを返したいと思っています。

コード:
Dim aaDate as Date
aaDate = Nothing 
return(aaDate)




しかし、この場合に受け取る値は「0001/01/01 0:00:00」となるようです。
自動的にある日付を与えてしまうのは不便だと思うのですが、Date型にはNULL値の代入できないのでしょうか?

一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2003-02-10 08:39
TogさんがDate型と呼んでいるのは、System.DateTime型の事です。
System.DateTime型は構造体(値型)ですので、残念ながらNothingは代入できません。
Nothingを代入すると、規定値になると思いました。

-------------------
C#では、構造体にnullなんておかしな事はできない(エラーが出る)んですが。
相変わらずVB.NETは余計なことしてくれますよね。

[ メッセージ編集済み 編集者: 一郎 編集日時 2003-02-10 08:50 ]
Tog
ベテラン
会議室デビュー日: 2002/06/09
投稿数: 76
投稿日時: 2003-02-10 11:06
お返事ありがとうございます。

Integer型の場合
コード:
Public Function GetNum as Integer
   Return(Nothing)
End Function


としておき
NUnitのテストで
AssertEquals(Nothing,_terget.GetNum)
と書いてもエラーにならなかったためDate型も同じように考えていました。


いままで何か根本的な勘違いをしていたようです(^^;;
1

スキルアップ/キャリアアップ(JOB@IT)