gpt4 book ai didi

c# - 替代嵌套类型的类型 Expression>

转载 作者:太空宇宙 更新时间:2023-11-03 16:25:17 26 4
gpt4 key购买 nike

我在调用服务时使用了一个函数。在调用服务之前,它会创建一个日志条目:

protected TResult CallService<TService, TResult>(TService service,
Expression<Func<TService, TResult>> functionSelector)
{
Logger.LogServiceCall(service, functionSelector);
return functionSelector.Compile()(service);
}

Visual Studio 2010 代码分析器通知我不应在以下消息中使用嵌套类型:

CA1006 : Microsoft.Design : Consider a design where 'ServiceManager.CallService<TService, Result>(TService, Expression<Func<TService, TResult>>)' doesn't nest generic type 'Expression<Func<TService, TResult>>'.

虽然我可以简单地为这个条目创建一个抑制规则,但是否存在可以防止显示此类警告的替代方法?

最佳答案

在这种情况下我会抑制它,因为调用者不必处理嵌套泛型,他只是传递一个易于使用的 lambda 表达式。

CA 不会对 lambda 表达式进行异常(exception)处理。有时抑制它比写奇怪的代码更好。

关于c# - 替代嵌套类型的类型 Expression<Func<T>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12791479/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com