-9

私のコードでと+の間の 2 つの記号は何を意味しますか?xminymin

なぜ「+」が2つあるのですか?

grenzen = "(" + xmin + ", " + ymin + ") - " + "(" + xmax + ", " + ymax + ").";
4

7 に答える 7

12

2 つの文字列を 1 つに連結します。ドキュメントから:

連結とは、ある文字列を別の文字列の末尾に追加するプロセスです。+ 演算子を使用して文字列リテラルまたは文字列定数を連結すると、コンパイラは 1 つの文字列を作成します。ランタイム連結は発生しません。ただし、文字列変数は実行時にのみ連結できます。この場合、さまざまなアプローチのパフォーマンスへの影響を理解する必要があります。

StringBuilderあなたの場合、 [MSDN]string.Format[MSDN]、またはstring.Concat[MSDN]を使用する方が効率的です。文字列は不変であるため、各連結演算子はまったく新しい文字列オブジェクトを生成します。

于 2013-06-10T13:01:00.567 に答える
6

これが文字列連結です。次のようなこともできます。

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に拡張される可能性があります. 注:これは実際のアルゴリズムではありません。アイデアを提供しようとしているだけです。

于 2013-06-10T13:02:02.197 に答える
5

'+' は C# の文字列連結に使用されます

例えば。

string x = "1";
string y = "2";
string z = "3";
string all = x + y + z;

与えるall="123"

「+」の使用は、次の方法でも実行できます。

x += y;
于 2013-06-10T13:01:32.183 に答える
2

ここで+、記号は文字列の連結に使用されています。

string message="This "+ "is" +" my "+" book";

出力 : これは私の本です

于 2013-06-10T13:01:24.340 に答える
0

ここでは、文字列を連結しています。

C# では+2 つの方法で動作します

両方のオペランドが2 + 3結果5

一方または両方のオペランドが'First' + 'Name'、結果が のような文字列である場合、連結し"FirstName"ます。

于 2013-06-10T13:02:47.707 に答える