3
Public Property Duration() As Integer
Get
  Try
    Return CType(Item(DurationColumn), Integer)
  Catch e As Global.System.InvalidCastException
    Throw New Global.System.Data.StrongTypingException("The value for column 'Duration' in table 'T_MembershipSale' is DBNull.", e)
  End Try
End Get
Set(ByVal value As Integer)
  Item(DurationColumn) = value
End Set
End Property

""ユーザーがItem(DurationColumn)整数に割り当てたい場合はどうなりますか? 例外があります。0これを回避して設定するためのクリーンなソリューションはあり""ますか?

4

4 に答える 4

3

Int32.TryParseを使用します。

Dim number as Integer
If Not Int32.TryParse(DurationColumn, number) Then number = 0
return number

これは、ユーザーが入力する可能性のあるその他の無効な値 (つまり、数値以外) と同様に、"" のケースを処理します。

于 2011-02-25T17:30:00.050 に答える
0

関数returnを最初に変数に割り当て、次に変換前に変数をチェックすることができます。

    Dim sRet As String = Item(DurationColumn)
    If Not String.IsNullOrEmpty(sRet) Then Convert.ToInt32(sRet)
于 2011-02-26T05:04:24.630 に答える
0

と を見てTryCastくださいInt32.TryParse

于 2011-02-25T17:33:27.863 に答える
0

使用できますIsNumeric

    number = If(IsNumeric(DurationColumn), CType(DurationColumn, Integer), 0)
于 2011-02-25T17:39:02.907 に答える