[英]What is the return _ in C#
我对C#中从未见过的事情有疑问。 在新的asp.net依赖注入的服务提供者中,有一个方法, return _ => null;
问题的方法:
private Func<MyServiceProvider, object> CreateServiceAccessor(Type serviceType)
{
var callSite = GetServiceCallSite(serviceType, new HashSet<Type>());
if (callSite != null)
{
return RealizeService(_table, serviceType, callSite);
}
return _ => null;
}
什么是_
? 它是C#6中的新功能吗? 除非您需要命名约定,否则搜索return _
不会返回任何有用的内容。
如果你没有在lambda中使用参数,人们使用_
作为约定来表示。
在您的代码中,如果未将serviceType
解析为调用站点,则会出现这种情况。 由于您不关心serviceType
返回null,因此_
用于该参数。
这可能是这篇帖子的重复,有很多信息:
对于C#7以上,语言(或编译器)认识到单个_
表示不重要的值的约定: https : //docs.microsoft.com/en-us/dotnet/csharp/discards
从C#7.0开始,C#支持丢弃,这是在应用程序代码中故意不使用的临时虚拟变量。 丢弃等同于未分配的变量; 他们没有价值。 因为只有一个discard变量,并且该变量甚至可能不被分配存储,所以丢弃可以减少内存分配。 因为它们使代码的意图变得清晰,所以它们增强了可读性和可维护性。
通过为下划线(_)指定变量,可以指示变量是丢弃的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.