2013-04-29 45 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)

您可以创建一个隐式类型数组,其中 数组实例的类型是从内容推断在 数组初始化指定

你可以忽略它或采用它,取决于你和你的团队的舒适度。

相关问题