+是什么意思?

-8 .net c# syntax

这两个+符号在我的代码之间xminymin我的代码中意味着什么?

为什么有两个"+"?

grenzen = "(" + xmin + ", " + ymin + ") - " + "(" + xmax + ", " + ymax + ").";
Run Code Online (Sandbox Code Playgroud)

Fis*_*rdo 12

它将两个字符串连接成一个字符串.从文档:

连接是将一个字符串附加到另一个字符串末尾的过程.使用+运算符连接字符串文字或字符串常量时,编译器会创建一个字符串.没有运行时连接发生.但是,字符串变量只能在运行时连接.在这种情况下,您应该了解各种方法的性能影响.

在您的情况下,使用StringBuilder[MSDN],string.Format[MSDN]string.Concat[MSDN]会更有效,因为字符串是不可变的,因此,每个连接运算符都会生成一个全新的字符串对象.

  • 这就是代表如何在SO上养殖. (6认同)

Mik*_*oud 6

这是字符串连接.你也可以这样做:

string.Format("({0}, {1}) - ({2}, {3}).", xmin, ymin, xmax, ymax);
Run Code Online (Sandbox Code Playgroud)

并得到相同的结果 - 但它更有效,更可读.在执行此操作时请考虑以下事项:

"(" + xmin;
Run Code Online (Sandbox Code Playgroud)

这是一个比你上面小得多的操作,内部.NET必须首先分配一个长度为1个字符的数组,然后它将评估字符串长度,xmin然后构建一个新数组,这两个数组的长度是一起的,将第一个数组复制到其中,并将结果填入xmin最后.

然而,string.Format它能够计算阵列前面的大小,因此只需要一个分配行程,使得它更有效率.

另一种方式,即至少比字符串连接更有效,是利用a,StringBuilder因为它是可变的:

StringBuilder sb = new StringBuilder();
sb.Append("(");
sb.Append(xmin);
...
Run Code Online (Sandbox Code Playgroud)

这比字符串连接更有效的原因是因为当你向StringBuilder它添加一个字符串时,它会扩展其容量超过你添加的容量.例如,如果我添加了一个字符,它可能会将其容量扩展到20个.注意:那不是实际的算法,我只想给你一个想法.


Fre*_*cer 5

'+'用于c#中的字符串连接

例如.

string x = "1";
string y = "2";
string z = "3";
string all = x + y + z;
Run Code Online (Sandbox Code Playgroud)

all="123"

使用'+'也可以通过以下方式完成:

x += y;
Run Code Online (Sandbox Code Playgroud)