質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

コーディング規約

コーディング規約とは、コードの書き方についての決め事のことです。 文法のことではなく、そのチームなどの中の約束事としてどのような書き方で行うかを定めるもの。 項目の例として、関数や変数の命名規則、コーディングのスタイル、括弧やインデントの書き方などが挙げられます。

Q&A

解決済

2回答

14977閲覧

String.Emptyの使いどころは?

AtsushiYonenaga

総合スコア116

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

コーディング規約

コーディング規約とは、コードの書き方についての決め事のことです。 文法のことではなく、そのチームなどの中の約束事としてどのような書き方で行うかを定めるもの。 項目の例として、関数や変数の命名規則、コーディングのスタイル、括弧やインデントの書き方などが挙げられます。

0グッド

1クリップ

投稿2020/10/02 03:10

C#では、空の文字列を表現する際に""の他にString.Emptyという書き方ができるようですが、可読性という観点で、String.Emptyという書き方を採用するメリットはありますか?

#参考

過去の投稿での議論では、等価である、とかかつてはString.Emptyの方が速かった、などとありますが、コードを読んだり書いたりするという点ではどうでしょうか。
Dim str As String = "" と Dim str As String = String.Emptyはどう違う?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gentaro

2020/10/02 03:47

> 可読性という観点で、String.Emptyという書き方を採用するメリットはありますか? 可読性という観点で、String.Emptyという書き方を採用するデメリットが具体的にどこにある前提の質問なんでしょうか?
guest

回答2

0

ベストアンサー

質問の趣旨というか背景がイマイチ理解できなかったので質問文の方にはコメントしてありますが、とりあえず字面の通り解釈した上での回答をすると、「可読性という観点ではメリットしかありません」となります。

""はC#の文法上、文字列を記述する際に利用する"という記号が連続して配置されただけのものです。

string.Emptyとの比較だと、例えばプログラミングの知識がゼロの人に対して両方を提示した上で、どっちの方が正確に意味が伝わるかと言うと、明らかにstring.Emptyに分があります。

人間の言語により近いもの(string.Empty)が、そうでないもの("")に劣る理由が見つけられません。

ちょっと別の話になりますが、string.Empty以外にもstring.IsNullOrEmptystring.IsNullOrWhiteSpaceというものもあります。

これらは(s == null || s == "")とか(s == null || s == " ")という記述(後者は完全じゃありませんが)になりますが、これを見てIsNullOrEmptyIsNullOrWhiteSpaceの方が可読性という観点でメリットがある、と思うのであれば、全く同じ理屈が当てはまるはずです。

以上の理由により、むしろどこに可読性の点で疑問を持たれたのか、というのが気になりますが、質問文に対するストレートな回答だとこうなります。

投稿2020/10/02 04:16

gentaro

総合スコア8949

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

gentaro

2020/10/02 04:47

””との対比でわかりやすいように説明するのが目的なので具体的な実装についてはスコープにありませんが、シンプルに知らなかったので一つ賢くなりました。
guest

0

「空の文字列とは何なのか?」という点において,

  • "" :

「空の文字列」とは""である,という具体的な事柄を知らなければ読んだり書いたりできない.
「空の文字列とは""である」という定義の上でのみ通用する記述.

  • String.Empty :

「空の文字列とは具体的には何なの?」を知らなくてもいける可能性,みたいな.
ある日,「"Cat"を「空」だということにするぜ!」とかルールが置き換えられたとしても(それに伴いString.Emptyが"Cat"に変わるなら)通用する記述.

なんだろう,
前者はガチの具体実装の世界で記述していて,
後者は抽象化された概念の世界で記述している,
みたいな?

投稿2020/10/02 03:38

編集2020/10/02 03:41
fana

総合スコア11632

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問