我应该声明我的字节[]

Max*_*Max 0 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;
}
Run Code Online (Sandbox Code Playgroud)

ReSharper告诉我改变:new byte[]new[]

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

Ode*_*ded 5

你误解了resharper在说什么.

这是说该byte部分是多余的 - 它不是必需的,因为编译器可以推断它.

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

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

  • @Mobstaa - 或者不是.真的取决于读者. (2认同)