C# 使用try-catch删除这个对局部变量-sonarqube-的无用赋值
在以下代码中,sonarqube对问题中提到的错误进行了投诉:C# 使用try-catch删除这个对局部变量-sonarqube-的无用赋值,c#,sonarqube,C#,Sonarqube,在以下代码中,sonarqube对问题中提到的错误进行了投诉: public async static Task<T> StartReadAsync<T>(Func<Task<T>> func) { T result = default; using (await _lock.ReadLockAsync(CancellationToken.None)) { _lo
public async static Task<T> StartReadAsync<T>(Func<Task<T>> func)
{
T result = default;
using (await _lock.ReadLockAsync(CancellationToken.None))
{
_logger.Info("read lock acquired.");
try
{
result = await func();
}
catch (Exception ex)
{
_logger.Error($"exception occured while read: {ex}");
}
}
_logger.Info("read lock released.");
return result;
}
public async静态任务StartReadAsync(Func Func)
{
T结果=默认值;
使用(wait_lock.ReadLockAsync(CancellationToken.None))
{
_logger.Info(“读取已获取的锁”);
尝试
{
结果=等待函数();
}
捕获(例外情况除外)
{
_logger.Error($“读取时发生异常:{ex}”);
}
}
_logger.Info(“读取已释放的锁”);
返回结果;
}
我如何重新编写此代码以解决sonarqube的投诉?您的捕获块是否重新捕获?你能提供一个例子而不是仅仅注释位吗?@Jon我已经提供了确切的代码。你是否尝试过根本没有
结果
,而是执行返回等待函数()
/返回默认值(T)
?我可以假设它在抱怨T结果=默认值但是你为什么要让我猜?@TimSchmelter:这怎么会是多余的?如果func()。如果没有初始赋值,变量不会在return
语句中明确赋值。您的catch块是否会重新调用?你能提供一个例子而不是仅仅注释位吗?@Jon我已经提供了确切的代码。你是否尝试过根本没有结果
,而是执行返回等待函数()
/返回默认值(T)
?我可以假设它在抱怨T结果=默认值但是你为什么要让我猜?@TimSchmelter:这怎么会是多余的?如果func()。如果没有初始赋值,变量不会在return
语句中明确赋值。