web-dev-qa-db-ja.com

VB intが空かどうかを確認します

本当に退屈な質問です。申し訳ありませんが、それはまだわかりません;)常にstring.emptyを試しましたが、小数を使用するとエラーが発生します。

機能はありますか?残念ながら、最も単純な質問については、グーグルに答えはありません

9
Florian Müller

タイトル(およびタグ)は「int」について質問しますが、質問は「decimal」でエラーが発生していることを示しています。いずれにせよ、値型Integerなど)に関しては、「空」のようなものはありません。 Decimalなど)。 参照型Nothingやクラスなど)の場合のように、Stringに設定することはできません。代わりに、valueタイプには、そのタイプの変数をデフォルト値に自動的に初期化する暗黙のデフォルトコンストラクターがあります。IntegerDecimalのような数値の場合、これは0.他のタイプについては、 このテーブル を参照してください。

したがって、値型が次のコードで初期化されているかどうかを確認できます。

_Dim myFavoriteNumber as Integer = 24
If myFavoriteNumber = 0 Then
    ''#This code will obviously never run, because the value was set to 24
End If

Dim mySecondFavoriteNumber as Integer
If mySecondFavoriteNumber = 0 Then
    MessageBox.Show("You haven't specified a second favorite number!")
End If
_

mySecondFavoriteNumberは、コンパイラによってバックグラウンドで自動的に0(Integerのデフォルト値)に初期化されるため、IfステートメントはTrueであることに注意してください。実際、上記のmySecondFavoriteNumberの宣言は、次のステートメントと同等です。

_Dim mySecondFavoriteNumber as Integer = 0
_


もちろん、お気づきかもしれませんが、人のお気に入りの番号が実際に0であるかどうか、または単に指定していないかどうかを知る方法はありません。まだ好きな番号。 Nothingに設定できる値型が本当に必要な場合は、 Nullable(Of T)、代わりに変数を次のように宣言します。

_Dim mySecondFavoriteNumber as Nullable(Of Integer)
_

そして、それが次のように割り当てられているかどうかを確認します。

_If mySecondFavoriteNumber.HasValue Then
    ''#A value has been specified, so display it in a message box
    MessageBox.Show("Your favorite number is: " & mySecondFavoriteNumber.Value)
Else
    ''#No value has been specified, so the Value property is empty
    MessageBox.Show("You haven't specified a second favorite number!")
End If
_
19
Cody Gray

たぶんあなたが探しているのはNullableです

    Dim foo As Nullable(Of Integer) = 1
    Dim bar As Nullable(Of Decimal) = 2

    If foo = 1 Then
        If bar = 2 Then
            foo = Nothing
            bar = Nothing
            If foo Is Nothing AndAlso bar Is Nothing Then Stop
        End If
    End If
3
dbasnett

数値のデフォルト値は0ですが、これを試すこともできます。

int x = 123;
String s = "" + x; 

次に、長さを確認するか、文字列 's'が空かどうかを確認します。

0
Juan Berner