2013-04-29 66 views
0

我檢查我的「惡意代碼」使用ReSharper應用。我應該聲明我的byte []

我有以下if-statement

if (Utility.Compare(Utility.ExtractRangeFromArray(bufferRx, 0, bytesRead), new byte[] { U_EOT})) 
{ 
    // EOT (End of transmission) received, break from while 
    break; 
} 

ReSharper告訴我改:new byte[]new[]

我的問題:什麼是最好的選擇嗎?爲什麼我不應該聲明變量?

回答

5

你是誤會什麼ReSharper的在說什麼。

這就是說,byte部分是多餘的 - 它不是必需的,因爲編譯器可以推斷它。

最佳實踐是使用您的團隊正在使用的內容 - 使用最具可讀性的內容。

在這種情況下,期望這是一個字節數組(從其他變量名稱的上下文以及可能的字節常量)是合理的 - 但是如果您的隊友不熟悉您可能想保留的數據流爲了清楚起見,聲明爲byte

+0

啊謝謝,使用:new byte []是更可讀的offcourse .. – Max 2013-04-29 09:03:58

+2

@Mobstaa - 或不。真的取決於讀者。 – Oded 2013-04-29 09:04:29

+0

我不知道將來哪些程序員會讀這段代碼,所以我認爲我只是繼續使用新的byte [],但你回答了我的問題,所以當SO也允許我的時候我會接受它。 – Max 2013-04-29 09:05:12

2

ReSharper的告訴你定義數組作爲Implicitly Typed Array(MSDN)

您可以創建一個隱式類型數組,其中 數組實例的類型是從內容推斷在 數組初始化指定

你可以忽略它或採用它,取決於你和你的團隊的舒適度。

相關問題