vbNllstring と nul l の 違いがわかりません
どなたか熟知してらっしゃる方教えていただけませんか?
helpは熟読しました。
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 とはならない。
おっと。間違い。
> 《vbNullChar》
> ・VarType(vbNullChar) は vbNullString を返す。
VarType(vbNullChar) は vbString です。m(_ _)m
この辺は色んな人が実験してますねぇ。
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
あ、
If Nothing = "" Then ' True
は構文の間違いか…
If Nothing Is "" Then ' False
おかしいと思ったんだ。
そうか、実質参照型だから 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
魔界の仮面弁士さん、特攻隊長まるるうさん
ありがとうございました。
理解できました。
ttp://songupload.songjapan.com/makiotsuki03s01.wma
ツイート | ![]() |