- - PR -
プロパティのチェック
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-11-22 16:09
次のようなプロパティがあるとしまして
プロパティに設定する場合に dim a as new dt a.field36 = "aaa" は問題ないのですが プロパティにSETする値がNullの可能性もあるので Set時に、Nullのチェック(IsDBNull)をつけてみたのですが 動作させてみると、「型'DBNull'から型'String'へのキャストが有効ではありません」 というエラーになります。 プロパティにSETする値のチェックは、SET時ではなく、 SET前に、行うようにしたほうがよいのでしょうか? -------------------------------- プロパティ Public Class dt Private m_field36 As String Public Property field36() As String Get Return m_field36 End Get Set(ByVal Value As String) If IsDBNull(Value) = True Then m_field36 = "" Else m_field36 = Value End If End Set End Property End Class | ||||||||||||
|
投稿日時: 2005-11-22 16:37
えっと、
ですよね?
クラス側の設計に因りますが、通常はおせっかいなことはしません。(特にプロパティは) メソッドでも時には例外をスローすべきだったりしますからね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2005-11-22 16:40
SetのValueがString型じゃないですか。
DBNullを設定しようとした場合は、Setの部分のコードが呼び出されれる前に例外になってしまいますね。 ですので、Set内での処理でIsDBNullをやっても無駄です。 | ||||||||||||
|
投稿日時: 2005-11-22 17:00
じゃんぬねっとさん、一郎さん、レスありがとうございました
基本は、プロパティの外。値をSETする前に チェックを行うわけですね。 私、チェックもかならずプロパティの中で 行わなければいけないものと勘違いしてました。 良い勉強になりました。 ありがとうございました。 |
1