0

我们知道+=运营商会这样做

x += y

相当于

x = x + y

但是有没有这样的运营商

x = y + x

整数x + y = y + x

没关系。但我想要字符串连接。

4

5 回答 5

3

达到相同结果的另一种方法是

    x.Insert(0, y);
于 2012-10-05T07:59:55.993 回答
1

您尝试执行的操作没有运算符,但您也可以使用扩展方法:

public static string AddBefore(this string value, string before)
{
    return before + value;
}

然后显然这样称呼它:

x = x.AddBefore(y);
于 2012-10-05T07:55:23.563 回答
1

我建议你应该全力以赴地打字,x = y + x因为它是清晰且易于维护的代码。如果您重载具有神秘含义的运算符,那么代码就会变得更加难以理解。

+= 具有明确且定义明确的含义,结果反映了参数的顺序(x += y使字符串保持 x, y 的顺序)。拥有这样的语句x ?= y会产生 y,x 恕我直言,这将是一个非常令人困惑的构造。

您可以编写一个像 Prepend() 这样的扩展方法来使含义更清晰,但这将比原始表达式输入更多,因此可能毫无意义。

于 2012-10-05T08:03:01.443 回答
0

不,没有。你可以使用+=,结果应该是一样的,因为x + y == y + x.

对于字符串,请考虑ConcatFormat方法或StringBuilder

于 2012-10-05T07:40:07.333 回答
0

使用 StringBuilder.Insert 方法(Int32,布尔值)

http://msdn.microsoft.com/en-us/library/0xzfkkwa.aspx

于 2012-10-05T08:00:41.410 回答