0
我本來有一些有條件的代碼是這樣的:爲什麼字符串被指定爲空(C#)的String.Empty?
String _monthYr4;
. . .
if (_monthYr4.Length > 0)
...但是當_monthYr4沒有分配到之前的條件之中達到了,它在運行時炸燬了,與老慄,「對象引用未設置爲對象的實例。「
因此,我增加了我認爲是一個默認字符串值(雖然空)來_monthYr4,像這樣:
private String _monthYr4 = String.Empty;
...但它仍然在完全相同的方式墜毀。所以我最後改變了這個條件:
if (null != _monthYr4)
...並且工作正常。但爲什麼?在將String.Empty分配給它之後,_monthYr4是否應該不爲null?
在一個側面說明,我分配到的String.Empty前_monthYr4,它看起來像這樣:
String _monthYr4;
...但我分配的String.Empty後_monthYr4時,Visual Studio(或ReSharper的,也許?)自動地前面有個「私人」的一部分,以便它是:
private String _monthYr4 = String.Empty;
...但我不知道爲什麼。
你確定條件之前的代碼沒有設置您的變量設置爲null? – esskar
'String.Empty'相當於''「''。有一些相關的東西沒有向我們展示。 –
這不應該失敗。清理/重建您的項目。重啓Visual Studio,這個'String _monthYr4 = String.Empty; Console.WriteLine(_monthYr4.Length);'永遠不會失敗。 – Habib