我試圖建立一個如下所示的字符串,我注意到它在使用?無論前一個值是否爲空,都是如此。與空合併運算符的字符串連接
"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