vbNullStringの事

解決


かふぇおれ  2005-04-22 22:00:10  No: 121177

vbNllstring と nul l  の  違いがわかりません
どなたか熟知してらっしゃる方教えていただけませんか?

helpは熟読しました。


魔界の仮面弁士  2005-04-22 22:42:11  No: 121178

VB6、かな。

《vbNullString》
・初期化されていない文字列を示す。いわゆる null pointer。
・可変長文字列型、すなわちString型の初期値。
・StrPtr(vbNullString) は 0 を返す。
・VarType(vbNullString) は vbString を返す。
・CBool("" = vbNullString) は True となる。
・主にAPI呼び出し時に、null pointer を渡す意図などで用いられる。

《Null》
・主にデータベースで、未定義値や不明な値の意味などで使われる。
・バリアント型にのみ格納可能。(String型などには格納できない)
・VarType(Null) は vbNull を返す。
・Null に対して演算を行うと、やはり Null のままになる。

ついでに以下も。

《vbNullChar》
・「ASCIIコード 0」な 1 文字を表す定数。ChrW(0) と同じ値。
・AscW(vbNullChar) は 0 を返す。
・VarType(vbNullChar) は vbNullString を返す。

《vbNull》
・VbVarType列挙型の値の一つ。値としては長整数型の 1 に等しい。
・VarType関数の戻り値として使われる。

《Empty》
・バリアント型の初期値。空のデータを意味する。
・バリアント型にのみ格納可能。
・数値型や文字列型に格納すると、0または空文字列に変化する。
・VarType(Empty) は vbEmpty を返す。
・CBool("" = Empty) は True を返す。
・CBool(0 = Empty) は True を返す。

《""》
・いわゆる「長さゼロの文字列」。空の文字列を意味する。
・vbNullString に似ているが、StrPtr("") は 0 とはならない。


魔界の仮面弁士  2005-04-22 22:43:28  No: 121179

おっと。間違い。

> 《vbNullChar》
> ・VarType(vbNullChar) は vbNullString を返す。

VarType(vbNullChar) は vbString です。m(_ _)m


特攻隊長まるるう  2005-04-23 00:41:34  No: 121180

この辺は色んな人が実験してますねぇ。
http://frog.raindrop.jp/knowledge/archives/000514.html

話は変わって、
同じなのに違う、違うのに同じ。そんな[VB.NET]がイカス(滅
面倒だけど全部
    Dim str As String = String.Empty
にするとか自分流のルールを作った方が良いかも?と思いました。
    If str = "" Then (何もしない)
    If str Is Nothing Then (何もしない)
…どれにしましょう。(って思う事が[VB.NET]は多過ぎるよぉ)

[VB.NET]データベースの Null は DBNull.Value で全然違うので省略
        Dim str As String ' Nothing
        str = String.Empty ' ""
        str = Nothing ' Nothing
        str = Microsoft.VisualBasic.Constants.vbNullString ' Nothing
        Debug.WriteLine(IsNothing(str)) ' True
        If str = "" Then ' True
            Debug.WriteLine(True)
        Else
            Debug.WriteLine(False)
        End If
        If Nothing = "" Then ' True
            Debug.WriteLine(True)
        Else
            Debug.WriteLine(False)
        End If
        str = str ' Nothing
        Try
            'str = str.Substring(0) ' エラー『オブジェクト参照がオブジェクト インスタンスに設定されていません。』
            str = String.Copy(str) ' エラー『値を Null にすることはできません。』
        Catch ex As Exception
            Debug.WriteLine(ex.Message)
        End Try
        str = str & str ' ""
        str = String.Copy(str) ' ""
        Debug.WriteLine(IsNothing(str))  ' False
        If str = "" Then ' True
            Debug.WriteLine(True)
        Else
            Debug.WriteLine(False)
        End If


特攻隊長まるるう  2005-04-23 00:48:21  No: 121181

あ、
        If Nothing = "" Then ' True
は構文の間違いか…
        If Nothing Is "" Then ' False
おかしいと思ったんだ。


特攻隊長まるるう  2005-04-23 01:00:38  No: 121182

そうか、実質参照型だから Is なのか???
        str = Nothing
        If str Is "" Then ' False
って
        str = "あいう"
        If str Is "あいう" Then ' True

        str = "あいう"
        str2 = "あいう"
        If str Is str2 Then ' True
えー?(T▽T)
もー終了しまーつm(__)m


かふぇおれ  2005-04-23 01:06:13  No: 121183

魔界の仮面弁士さん、特攻隊長まるるうさん

ありがとうございました。

理解できました。


かす  2005-04-23 01:17:52  No: 121184

ttp://songupload.songjapan.com/makiotsuki03s01.wma


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加