我应该声明我的字节[]

时间:2013-04-29 09:00:23

标签: c# resharper declaration

我正在使用ReSharper检查我的“错误代码”申请。

我有以下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[]

我的问题:最佳选择是什么?为什么我不应该声明变量?

2 个答案:

答案 0 :(得分:5)

你误解了重塑者所说的话。

据说byte部分是多余的 - 不需要它,因为编译器可以推断它。

最佳做法是使用您的团队正在使用的内容 - 使用最具可读性的内容。

在这种情况下,可以合理地预期这是一个字节数组(来自其他变量名称的上下文,可能还有字节常量) - 但如果您的团队成员不熟悉流,您可能希望保留为了清楚起见,byte声明。

答案 1 :(得分:2)

Resharper告诉你将数组定义为Implicitly Typed Array(MSDN)

  

您可以创建一个隐式类型数组,其中包含类型   数组实例从指定的元素中推断出来   数组初始化器。

您可以忽略它或采用它,取决于您和您的团队所熟悉的内容。