这个问题实际上是对另一个主题的回答的后续问题,但是对于那个原始问题不在话题,所以我在一个新的主题中问它。
Why does CodeRush warn me of an Unused Declaration in code?
问题可以独立存在,因此原始问题的链接只是好奇的参考。
我的问题只是这个? Save()方法会返回false还是总是返回true?
public bool Save()
{
bool success = false;
using (DataAccess.ExecuteDataTable("[dbo].[udp_Customers_ups]",
DataAccess.Parameter(CustomerIdColumn, CustomerId),
DataAccess.Parameter(CodeColumn, Code),
DataAccess.Parameter(CompanyColumn, Company),
DataAccess.Parameter(CommentsColumn, Comments),
DataAccess.Parameter(ContactColumn, Contact),
DataAccess.Parameter(StreetColumn, Street),
DataAccess.Parameter(CityColumn, City),
DataAccess.Parameter(StateColumn, State),
DataAccess.Parameter(ZipcodeColumn, Zipcode),
DataAccess.Parameter(PhoneColumn, Phone),
DataAccess.Parameter(IsNewColumn, IsNew),
DataAccess.Parameter(IsDeletedColumn, IsDeleted),
DataAccess.Parameter(LastUpdatedColumn, LastUpdated),
DataAccess.Parameter(UpdatedByColumn, UpdatedBy)))
{
success = true;
}
return success;
}
我试图强制使用不会使用的情况,但每次我都会遇到不同的错误。所以我认为这个方法总是正确的,因为任何导致它失败的东西都会在数据层上浮现,并且永远不会让它回到这里以返回错误。
答案 0 :(得分:2)
此方法将始终返回true,否则将抛出异常,因为语句
return success;
总是先于("支配")
success = true;
我怀疑使用声明并不是你在这里寻找的。使用保证在传递给using语句的对象上调用dispose方法。并且无论如何都会执行循环内的代码。有关using语句的详细信息,请参阅https://msdn.microsoft.com/en-us/library/yh598w02.aspx。
答案 1 :(得分:0)
您的代码等同于
public bool Save()
{
using (DataAccess.ExecuteDataTable("[dbo].[udp_Customers_ups]",
DataAccess.Parameter(CustomerIdColumn, CustomerId),
DataAccess.Parameter(CodeColumn, Code),
DataAccess.Parameter(CompanyColumn, Company),
DataAccess.Parameter(CommentsColumn, Comments),
DataAccess.Parameter(ContactColumn, Contact),
DataAccess.Parameter(StreetColumn, Street),
DataAccess.Parameter(CityColumn, City),
DataAccess.Parameter(StateColumn, State),
DataAccess.Parameter(ZipcodeColumn, Zipcode),
DataAccess.Parameter(PhoneColumn, Phone),
DataAccess.Parameter(IsNewColumn, IsNew),
DataAccess.Parameter(IsDeletedColumn, IsDeleted),
DataAccess.Parameter(LastUpdatedColumn, LastUpdated),
DataAccess.Parameter(UpdatedByColumn, UpdatedBy)))
{
return true;
}
}
这表明false
到success
的分配未使用。