.net 如何修复新DataTable实例上的CA2000代码分析错误
如何修复语句DataTable dtSummary=new DataTable(“Summary”);上以下函数中的CA2000代码分析错误;?如果我在dtSummary上使用using block,而我不能在下面的函数中使用using block,因为其他函数将使用GetSummaryReportTable函数返回的datatable,那么CA2000将关闭 私有数据表GetSummaryReportTable(IImportResult){.net 如何修复新DataTable实例上的CA2000代码分析错误,.net,.net,如何修复语句DataTable dtSummary=new DataTable(“Summary”);上以下函数中的CA2000代码分析错误;?如果我在dtSummary上使用using block,而我不能在下面的函数中使用using block,因为其他函数将使用GetSummaryReportTable函数返回的datatable,那么CA2000将关闭 私有数据表GetSummaryReportTable(IImportResult){ }这是一个已经在这里详细讨论过的主题: 简而言之,
}这是一个已经在这里详细讨论过的主题: 简而言之,如果您真的想遵循样式cop规则,那么就不能使用DataTable作为返回类型。您必须使用其他对象返回数据,并将DataTable对象包装在using语句中。请检查以下内容: 用这个例子
Private Function GetNewStream() As StreamWriter
m_CurrentFileName = GetNewFileName()
// Triggers CA2000
Return New StreamWriter(New FileStream(m_CurrentFileName, _
FileMode.Append, _
FileAccess.Write, _
FileShare.Read))
End Function
微软表示:
“规则被触发的原因是,如果StreamWriter
构造函数抛出异常,然后新创建的文件流
对象未被处置。您可以通过将其包装到
try/finally在finally中阻止并处置FileStream对象
仅当StreamWriter块未成功创建时才会被阻止。“
这似乎是解决警告的最佳方法。请格式化您的代码,选择它并使用101010按钮。这样是不可读的…可能是
Private Function GetNewStream() As StreamWriter
m_CurrentFileName = GetNewFileName()
// Triggers CA2000
Return New StreamWriter(New FileStream(m_CurrentFileName, _
FileMode.Append, _
FileAccess.Write, _
FileShare.Read))
End Function