我正在使用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[]
我的问题:最佳选择是什么?为什么我不应该声明变量?
答案 0 :(得分:5)
你误解了重塑者所说的话。
据说byte
部分是多余的 - 不需要它,因为编译器可以推断它。
最佳做法是使用您的团队正在使用的内容 - 使用最具可读性的内容。
在这种情况下,可以合理地预期这是一个字节数组(来自其他变量名称的上下文,可能还有字节常量) - 但如果您的团队成员不熟悉流,您可能希望保留为了清楚起见,byte
声明。
答案 1 :(得分:2)
Resharper告诉你将数组定义为Implicitly Typed Array(MSDN)
您可以创建一个隐式类型数组,其中包含类型 数组实例从指定的元素中推断出来 数组初始化器。
您可以忽略它或采用它,取决于您和您的团队所熟悉的内容。