Save()方法是否会返回false或者它总是返回true?
问题描述:
这个问题实际上是跟在另一个线程上的答案,但是与该原始问题相关的主题是这样,所以我在新线程中提问。Save()方法是否会返回false或者它总是返回true?
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;
}
我试图强制使用不会工作的情况,但每次我都会得到不同的错误。所以我认为这个方法总是成立的,因为任何会导致它失败的东西都会在数据层出现,并且永远不会返回到这里返回false。
答
此方法将总是返回true,否则将抛出一个异常,因为
success = true;
声明
return success;
总是先(“主导”)我怀疑using语句是不完全是你在这里寻找的。使用确保在传递给using语句的对象上调用dispose方法。无论如何,循环内的代码都会执行。有关使用说明的更多信息,请参见https://msdn.microsoft.com/en-us/library/yh598w02.aspx。
答
您的代码就相当于
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
分配未使用。
如果你用try catch块封装你的整体,那么catch将执行并且成功仍然是false - 我不确定这是你想要的吗? – NDJ 2015-04-04 18:35:59