c# - 为什么 Microsoft.NetCore.Analyzers CA2000 中的分析结果有差异
问题描述
我之前的问题太抽象了,被否决了。你可以在工厂方法中找到它来创建一次性容器
我想从 DAC 工厂返回两个对象。即加载的数据集和使用的参数列表。有两个实现被删减。其中只有一个会触发 CA2000。Tuple vs POCO 有什么特别之处?
class Factory
{
public Tuple<DataSet, IReadOnlyDictionary<string, object>> CreateWrapped()
{
var ds = new DataSet();//why does FxCop complains CA2000 here?
var p = new Dictionary<string, object>();
return Tuple.Create(ds, (IReadOnlyDictionary<string, object>)p);
}
public PocoResult CreatePoco()
{
var ds = new DataSet();//why does FxCop happy here?
var p = new Dictionary<string, object>();
return new PocoResult(ds, p);
}
}
下面你会看到 POCO 的定义。如果您认为这很重要。
class PocoResult
{
public PocoResult(DataSet dataSet, IReadOnlyDictionary<string, object> selectParameters)
{
DataSet = dataSet;
SelectParameters = selectParameters;
}
public DataSet DataSet { get; }
public IReadOnlyDictionary<string, object> SelectParameters { get; }
}
解决方案
推荐阅读
- jquery - 如果总和 2 选择选项大于 Jquery 的总和,则删除选择选项
- javascript - 如何获取 JSON 中的数据数组 - JavaScript
- c++ - 如何为使用 std::enable_if 专门的类定义类外函数
- python - 如何在python中的数据库中插入爬行
- java - 滑动手势很慢,...如何在 android 中加快我的滑动手势?
- batch-file - 如何检查当前登录的用户是否在特定组中?
- jupyter-notebook - 如何使用 pygal 库在 Jupyter / iPython Notebook 中的世界地图上绘制数据?
- google-maps - 如何重新定位 Google 地图徽标和地图按钮
- typescript - 如何在 NativeScript Vue 中设置“nativescript-stripe”
- javascript - chrome 扩展 chrome.tabs.getCurrent 失败,chrome.tabs.query({active: true} 在具有 activeTabs 权限的普通脚本中工作