私のコードでと+
の間の 2 つの記号は何を意味しますか?xmin
ymin
なぜ「+」が2つあるのですか?
grenzen = "(" + xmin + ", " + ymin + ") - " + "(" + xmax + ", " + ymax + ").";
2 つの文字列を 1 つに連結します。ドキュメントから:
連結とは、ある文字列を別の文字列の末尾に追加するプロセスです。+ 演算子を使用して文字列リテラルまたは文字列定数を連結すると、コンパイラは 1 つの文字列を作成します。ランタイム連結は発生しません。ただし、文字列変数は実行時にのみ連結できます。この場合、さまざまなアプローチのパフォーマンスへの影響を理解する必要があります。
StringBuilder
あなたの場合、 [MSDN]、string.Format
[MSDN]、またはstring.Concat
[MSDN]を使用する方が効率的です。文字列は不変であるため、各連結演算子はまったく新しい文字列オブジェクトを生成します。
これが文字列連結です。次のようなこともできます。
string.Format("({0}, {1}) - ({2}, {3}).", xmin, ymin, xmax, ymax);
同じ結果が得られますが、より効率的で読みやすくなっています。この操作を行うときは、次のことを考慮してください。
"(" + xmin;
これは、上記の操作よりもはるかに小さい操作です。内部的に .NET は、最初に 1 文字の長さの配列を割り当てる必要があります。次に、文字列の長さを評価し、xmin
それら 2 つを合わせた長さの新しい配列を作成します。最初の配列をそれにコピーxmin
し、最後に結果を詰め込みます。
ただし、string.Format
配列のサイズを前もって計算できるため、必要な割り当てトリップは 1 回だけなので、はるかに効率的です。
少なくとも文字列の連結よりも効率的な別の方法は、StringBuilder
可変であるため a を活用することです。
StringBuilder sb = new StringBuilder();
sb.Append("(");
sb.Append(xmin);
...
これが文字列連結よりも効率的である理由は、文字列を追加すると、追加したStringBuilder
容量を超えて容量が拡張されるためです。例として、キャラクターを1つ追加すると、その容量が20に拡張される可能性があります. 注:これは実際のアルゴリズムではありません。アイデアを提供しようとしているだけです。
'+' は C# の文字列連結に使用されます
例えば。
string x = "1";
string y = "2";
string z = "3";
string all = x + y + z;
与えるall="123"
「+」の使用は、次の方法でも実行できます。
x += y;
ここで+
、記号は文字列の連結に使用されています。
string message="This "+ "is" +" my "+" book";
出力 : これは私の本です
ここでは、文字列を連結しています。
C# では+
2 つの方法で動作します
両方のオペランドが2 + 3
結果5
が
一方または両方のオペランドが'First' + 'Name'
、結果が のような文字列である場合、連結し"FirstName"
ます。