我试图建立一个如下所示的字符串,我注意到它在使用?无论前一个值是否为空,都是如此。与空合并运算符的字符串连接
"Some Text" + System.Environment.NewLine +
varOne.ToString() ?? string.Empty + System.Environment.NewLine +
varTwo.ToString()...
所有的字符串包含(不管值)达到的Varone(某些文本换行+ +的Varone),除非我删除?运营商。看了一下后,我发现这不是这样做的首选方式,我应该使用一个stringbuilder来代替,但我只是好奇为什么发生这种情况?
如果变量'null',调用'ToString'它会抛出。 – Oded
框架中没有从'ToString'返回'null'的类,我怀疑这样做是个好主意。所以'ToString'之后的空合并运算符没有意义。也许这个:'varOne == null? string.Empty + System.Environment.NewLine:varOne.ToString()' –
也许一些额外的括号可能会有所帮助。 '''优先级低于'+'。看看这个:http://msdn.microsoft.com/en-us/library/6a71f45d.aspx – spender