C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: Stringの比較でIsと=の違いは?


(過去ログ 68 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■39610 / inTopicNo.1)  Stringの比較でIsと=の違いは?
  
□投稿者/ R2D2 (1回)-(2009/08/11(Tue) 15:27:32)

分類:[VB.NET/VB2005 以降] 

If文でテキストボックスの値が空白なら
の条件をチェックする際
Textbox1.text = String.Empty
Textbox1.text is String.Empty
も条件を満たしてくれますが、これはどちらを使っても良いのでしょうか?

↑の意味合いとしてはテキストボックスの値を空にするときに
Textbox1.text = String.Empty
Textbox1.text = ""
のどちらを使うかは規約などで変わるような認識でいいでしょうか?
引用返信 編集キー/
■39612 / inTopicNo.2)  Re[1]: Stringの比較でIsと=の違いは?
□投稿者/ επιστημη (2099回)-(2009/08/11(Tue) 15:32:22)
επιστημη さんの Web サイト
回答ぢゃないけど:

> If文でテキストボックスの値が空白なら
> の条件をチェックする際
> Textbox1.text = String.Empty
> Textbox1.text is String.Empty
> も条件を満たしてくれますが、これはどちらを使っても良いのでしょうか?

String.IsNullOrEmpty(Textbox1.Text) なんてのもあるます。

引用返信 編集キー/
■39615 / inTopicNo.3)  Re[1]: Stringの比較でIsと=の違いは?
□投稿者/ 魔界の仮面弁士 (1195回)-(2009/08/11(Tue) 15:46:41)
No39610 (R2D2 さん) に返信
> If文でテキストボックスの値が空白なら
If TextBox1.TextLength = 0 Then
If TextBox1.Text = "" Then


> Textbox1.text = String.Empty
> Textbox1.text is String.Empty
> も条件を満たしてくれますが、これはどちらを使っても良いのでしょうか?
後者は厳密には NG です。動いてくれる可能性が高いとは思いますが。

あとは、このあたりとか。
http://rucio.groupsite.jp/commu/ThreadDetail.aspx?ThreadId=9187

> ↑の意味合いとしてはテキストボックスの値を空にするときに
TextBox1.Clear() という手も。
引用返信 編集キー/
■39616 / inTopicNo.4)  Re[1]: Stringの比較でIsと=の違いは?
□投稿者/ よねKEN (400回)-(2009/08/11(Tue) 15:56:49)
No39610 (R2D2 さん) に返信
> Textbox1.text = String.Empty
> Textbox1.text is String.Empty
> も条件を満たしてくれますが、これはどちらを使っても良いのでしょうか?

= と Isは比較するものがまったく違いますので、値の比較をするなら=を使いましょう。

#もちろんεπιστημηさんの方法でも可


No39615 (魔界の仮面弁士 さん) に返信
>>Textbox1.text is String.Empty
>>も条件を満たしてくれますが、これはどちらを使っても良いのでしょうか?
> 後者は厳密には NG です。動いてくれる可能性が高いとは思いますが。

「たまたま動く」だろうと思ったのですが、
私のとこで実験コードを書いて試してみたら結果はNGでした。
いずれにせよ、Is演算子は比較するものが違うので、今回の用途では使うものではないですね。

引用返信 編集キー/
■39620 / inTopicNo.5)  Re[2]: Stringの比較でIsと=の違いは?
□投稿者/ 魔界の仮面弁士 (1196回)-(2009/08/11(Tue) 16:12:47)
No39616 (よねKEN さん) に返信
> >>Textbox1.text is String.Empty
> >>も条件を満たしてくれますが、これはどちらを使っても良いのでしょうか?
>>後者は厳密には NG です。動いてくれる可能性が高いとは思いますが。
> 「たまたま動く」だろうと思ったのですが、
> 私のとこで実験コードを書いて試してみたら結果はNGでした。

元質問に『〜も条件を満たしてくれますが』とあったので、
私も「たまたま動く」と予想したのですが…確かに動かないですね。

# CLR 1.1 および 2.0 で確認

Dim sb As New System.Text.StringBuilder()
TextBox1.Text = sb.ToString()

MsgBox(TextBox1.Text = String.Empty) 'True
MsgBox(TextBox1.Text Is String.Empty) 'False

TextBox1.Text = ""
MsgBox(TextBox1.Text = String.Empty) 'True
MsgBox(TextBox1.Text Is String.Empty) 'False

TextBox1.Text = String.Empty
MsgBox(TextBox1.Text = String.Empty) 'True
MsgBox(TextBox1.Text Is String.Empty) 'False

TextBox1.Text = Nothing
MsgBox(TextBox1.Text = String.Empty) 'True
MsgBox(TextBox1.Text Is String.Empty) 'False

TextBox1.Clear()
MsgBox(TextBox1.Text = String.Empty) 'True
MsgBox(TextBox1.Text Is String.Empty) 'False


> いずれにせよ、Is演算子は比較するものが違うので、今回の用途では使うものではないですね。
ですね。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -