[解決済み] 演算子「+」による文字列の連結
2023-05-24 04:09:50
質問
を見ると
string
クラスのメタデータを見ると、演算子である
==
と
!=
がオーバーロードされている。では、どのようにして'co'の連結を行うことができるのでしょうか?
+
の演算子に対してどのように連結を行うことができるのでしょうか?
編集 :
Eric Lippert氏による、文字列連結に関するいくつかの興味深いメモです。
また、その2で紹介されているJoelのスーパー記事もあります( http://www.joelonsoftware.com/articles/fog0000000319.html )
どのように解決するのですか?
C#コンパイラが解決してくれます :)
というわけでこのコード。
string x = "hello";
string y = "there";
string z = "chaps";
string all = x + y + z;
のように実際にコンパイルされます。
string x = "hello";
string y = "there";
string z = "chaps";
string all = string.Concat(x, y, z);
(ガーン - 間接編集で誤って他の部分を削除してしまった。)
C#コンパイラがここで複数の文字列の連結があることを認識する利点は、最終的に中間文字列である
x + y
の連結の一部として再びコピーされる必要がないことです。
(x + y)
と
z
. その代わり、一回で全部終わらせる。
EDIT: なお、コンパイラの ができない はループの中で連結すると何もできないことに注意してください。例えば、こんなコード。
string x = "";
foreach (string y in strings)
{
x += y;
}
と同等に終わるだけです。
string x = "";
foreach (string y in strings)
{
x = string.Concat(x, y);
}
...ということで、この
は
は多くのゴミを発生させますので、そのために
StringBuilder
を使うべきでしょう。私の場合は
の記事で詳しく説明していますが、2つの
という記事を用意していますので、そちらをご覧ください。
関連
-
[解決済み】Socket.Selectがエラー "An operation was attempted on something that is not a socket" を返す。
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] バイトを文字列に変換する
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】大文字・小文字を区別しない「Contains(string)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】GDI+、JPEG画像をMemoryStreamに変換する際にジェネリックエラーが発生しました。
-
[解決済み] [Entity Framework 4.1でエンティティに関連オブジェクトを追加する際に、エンティティオブジェクトをIEntityChangeTracker.の複数のインスタンスから参照できない。
-
[解決済み】「入力文字列が正しい形式ではありませんでした」エラーの解決方法は?[重複しています]。
-
[解決済み】WPFでXamlファイルにコメントを追加する方法は?
-
[解決済み] 'IEnumerable<SelectListItem>' 型の ViewData アイテムで、キーが国であるものは存在しない。
-
[解決済み】5.7.57 SMTP - MAIL FROMエラー時に匿名メールを送信するためにクライアントが認証されない
-
[解決済み】ファイルへの読み書きの際に共有違反のIOExceptionが発生する C#
-
[解決済み】Linq 構文 - 複数列の選択
-
[解決済み】2つ(またはそれ以上)のリストを1つに統合する(C# .NETで
-
[解決済み] 弱型付け言語に関する明らかな矛盾の解明を求めて