为什么 CodeRush 警告我代码中有未使用的声明?
Why does CodeRush warn me of an Unused Declaration in code?
我有这段代码,我在我的所有应用程序中都使用它来将数据保存回数据库。
public bool SaveDemo()
{
bool success = false;
try
{
using (DataTable dt = DataAccess.ExecuteDataTable("[dbo].[udp_Customers_ups]",
DataAccess.Parameter(CustomerIdColumn, CustomerId),
DataAccess.Parameter(CodeColumn, Code),
DataAccess.Parameter(CompanyColumn, Company),
DataAccess.Parameter(IsDeletedColumn, IsDeleted),
DataAccess.Parameter(LastUpdatedColumn, LastUpdated),
DataAccess.Parameter(UpdatedByColumn, UpdatedBy)))
success = true;
}
catch
{
success = false;
}
return success;
}
代码按原样工作,我的意思是它将数据保存回数据库。但是 CodeRush 抱怨 dt 是未使用的声明。而且由于 Using 是(我认为)使用 dt 我会认为警告是误报。所以我想知道 CodeRush 是否有误,或者我是否遗漏了什么?
CR 想表达的是:
using (DataTable dt = DataAccess.ExecuteDataTable ...
您没有使用 dt
的声明;之后变量保持不变。
重构按钮会将其转换为
using ( DataAccess.ExecuteDataTable ...
即它仍然是一个 using
语句,但你不会有一个变量来引用它。
在执行此操作时,您可以进行一些内联结果转换,从而产生:
try
{
using (DataAccess.ExecuteDataTable("[dbo].[udp_Customers_ups]",
DataAccess.Parameter(CustomerIdColumn, CustomerId),
DataAccess.Parameter(CodeColumn, Code),
DataAccess.Parameter(CompanyColumn, Company),
DataAccess.Parameter(IsDeletedColumn, IsDeleted),
DataAccess.Parameter(LastUpdatedColumn, LastUpdated),
DataAccess.Parameter(UpdatedByColumn, UpdatedBy)))
return true;
}
catch
{
return false;
}
我会让其他人质疑在 catch
块中包装这样的调用是否是个好主意...
我有这段代码,我在我的所有应用程序中都使用它来将数据保存回数据库。
public bool SaveDemo()
{
bool success = false;
try
{
using (DataTable dt = DataAccess.ExecuteDataTable("[dbo].[udp_Customers_ups]",
DataAccess.Parameter(CustomerIdColumn, CustomerId),
DataAccess.Parameter(CodeColumn, Code),
DataAccess.Parameter(CompanyColumn, Company),
DataAccess.Parameter(IsDeletedColumn, IsDeleted),
DataAccess.Parameter(LastUpdatedColumn, LastUpdated),
DataAccess.Parameter(UpdatedByColumn, UpdatedBy)))
success = true;
}
catch
{
success = false;
}
return success;
}
代码按原样工作,我的意思是它将数据保存回数据库。但是 CodeRush 抱怨 dt 是未使用的声明。而且由于 Using 是(我认为)使用 dt 我会认为警告是误报。所以我想知道 CodeRush 是否有误,或者我是否遗漏了什么?
CR 想表达的是:
using (DataTable dt = DataAccess.ExecuteDataTable ...
您没有使用 dt
的声明;之后变量保持不变。
重构按钮会将其转换为
using ( DataAccess.ExecuteDataTable ...
即它仍然是一个 using
语句,但你不会有一个变量来引用它。
在执行此操作时,您可以进行一些内联结果转换,从而产生:
try
{
using (DataAccess.ExecuteDataTable("[dbo].[udp_Customers_ups]",
DataAccess.Parameter(CustomerIdColumn, CustomerId),
DataAccess.Parameter(CodeColumn, Code),
DataAccess.Parameter(CompanyColumn, Company),
DataAccess.Parameter(IsDeletedColumn, IsDeleted),
DataAccess.Parameter(LastUpdatedColumn, LastUpdated),
DataAccess.Parameter(UpdatedByColumn, UpdatedBy)))
return true;
}
catch
{
return false;
}
我会让其他人质疑在 catch
块中包装这样的调用是否是个好主意...