编程语言
首页 > 编程语言> > c# – FxCop说我应该返回一个通用列表接口而不是字节数组.我是不是该?

c# – FxCop说我应该返回一个通用列表接口而不是字节数组.我是不是该?

作者:互联网

我正在编写一个库而不是从EventArgs派生中返回一个字节数组,它说我应该返回类似IList或ReadOnlyCollection的东西.

通常情况下,我会全力以赴,但大多数现有.NET Framework使用字节数组而不是通用列表接口.

因此,如果我使用IList,那么在访问eventargs时,如果客户想要调用File.WriteAllBytes,他或她将不得不使用System.Linq;并调用ToArray扩展方法以字节数组的形式获取IList.当然还有其他方法可以做到这一点,但这是最优雅和典型的.

这个库的客户端总是希望事物以字节数组的形式存在,以便它们与框架的其余部分很好地连接.

此外,优化可能会在这里发挥作用.有可能需要操作大量字节,因此必须重新复制整个列表,只是为了以字节数组的形式获取它,每次都可能减慢速度.

最后,这简直令人不快.如果客户端总是想要一个字节数组,那么为什么不给它们呢?框架设计指南在这种情况下不适用吗?你会怎么做?

解决方法:

Clients of this library are always going to want things to be in terms
of an array of bytes so that they interface nicely with the rest of
the framework.

你有答案 – 在大多数情况下,FxCop输出只是有用的建议 – 而不是命令 – 如果这个特殊的不适用于你,你甚至可以关闭它.

标签:c,fxcop,list
来源: https://codeday.me/bug/20190712/1442410.html