+是什么意思?

时间:2013-06-10 13:00:21

标签: c# .net syntax

我的代码中+xmin之间的两个ymin符号是什么意思?

为什么有两个“+”?

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

7 个答案:

答案 0 :(得分:12)

concatenates两个字符串合为一个。来自文档:

  

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

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

答案 1 :(得分:6)

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

string.Format("({0}, {1}) - ({2}, {3}).", xmin, ymin, xmax, ymax);

并获得相同的结果 - 但它更有效更具可读性。当您执行此操作时请考虑这一点:

"(" + xmin;

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

然而,使用string.Format,它可以预先计算数组的大小,因此只需要一次分配行程,使其更多更有效。

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

StringBuilder sb = new StringBuilder();
sb.Append("(");
sb.Append(xmin);
...

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

答案 2 :(得分:5)

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

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

给出all="123"

使用'+'也可以通过以下方式进行:

x += y;

答案 3 :(得分:2)

此处+符号用于字符串连接。

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

输出:这是我的书

答案 4 :(得分:1)

它是一个连接两个字符串的连接运算符

答案 5 :(得分:0)

这里是连接字符串。

在C#+中有两种方式

如果两个操作数都是2 + 3,其结果为5

,则会添加

如果一个或两个操作数是/ 'First' + 'Name'之类的字符串,其结果为"FirstName",则它会连接。

答案 6 :(得分:0)

考虑更仔细地查看代码。变量的类型以及对象说明允许哪些操作。考虑到这一点,变量必须有字符串运算符,因此很好地猜测它是字符串。

(也来自德国)