2011-10-17 31 views
2

替換我的代碼重構:以恆的String.Empty

Dim a As String = "" 

以下行和重構暗示""String.Empty

它是一種Reafactoring但爲什麼更換?由於我是未來的新手,我應該更好地使用String.Empty

回答

2

這實際上主要是一個偏好問題。就我個人而言,我發現String.Empty更清楚地表明瞭程序員的意圖(例如,他並沒有意外地放置一個空字符串而不是空格)......這可能是「重構」暗示的原因。但除此之外,他們完全一樣。做你認爲合適的一個。

0

String.Empty字段的值是零長度字符串「」。

在應用程序代碼中,此字段最常用於將字符串變量初始化爲空字符串。要測試字符串的值是否爲null或String.Empty,請使用IsNullOrEmpty方法。

+0

這是如何回答OP的問題? –

+0

@SashaGoldshtein,我告訴他通過我的解釋,使用String.Empty等於使用「」和String.Empty將指定一個空字符串正確初始化爲變量。 –

0

這幾乎是個人喜好的問題。我更喜歡在任何可能的情況下使用常量,特別是如果它們已由我正在使用的框架提供。我不會竭盡全力去消除代碼中每一個「」的用法。 (特別是因爲編譯器會摺疊字符串文字的所有重複內容,並且只保留其中一個用於運行時。)

0

「」可能會創建一個新的String對象,而String.Empty則引用一個預定義的(現有)對象。這是一個小小挑逗,但這就是refatoring工具的作用:找到各種問題,包括小小的挑剔。

0

我總是走相反的路,將字符串設置爲null。有幾種情況下,你想要與「」的意思是你有一個字符串,但沒有內容。通常你的意思是你沒有建立字符串。這就是爲什麼我更喜歡null構造。