.net Framework 4 中的 C#6 表达式
C#6 expression in .net framework 4
我有这个 C# 6 表达式
private int ProxyQueueTimeoutMs => ((MultiProxyCrawlConfiguration) _config).ProxyQueueTimeoutMs;
是否存在 C#6 之前的 C# 等效项?
是否可以在.net framework 4 等旧版本中编写类似的方法?
您可以在项目中包含 Microsoft.Net.Compilers
NuGet 包,它将替换所使用的 C# 编译器,以便您可以面向 C#6.0。
https://www.nuget.org/packages/Microsoft.Net.Compilers/
这应该使您能够将 C#6.0 与 .NET 4 一起使用。我已经将它用于 .NET 4.5
这种语法叫做Expression-bodied function members。它等同于 ProxyQueueTimeoutMs
属性 和 getter 在 =>
部分之后的 returns 等同于;
private int ProxyQueueTimeoutMs
{
get
{
return ((MultiProxyCrawlConfiguration) _config).ProxyQueueTimeoutMs;
}
}
在 C# 6 之前你可以用这种方式做到这一点
private int ProxyQueueTimeoutMs
{
get
{
return ((MultiProxyCrawlConfiguration) _config).ProxyQueueTimeoutMs;
}
}
您可以在任何 .NET 版本中编写 C# 6,因为 C# 由编译器处理,而不是由 .NET Framework 版本处理。
它是私有只读 属性,使用新的 C# 6 表达式主体 属性 语法定义。
早期版本的 C# 的等效代码是
private int ProxyQueueTimeoutMs
{
get
{
return ((MultiProxyCrawlConfiguration)_config).ProxyQueueTimeoutMs;
}
}
我有这个 C# 6 表达式
private int ProxyQueueTimeoutMs => ((MultiProxyCrawlConfiguration) _config).ProxyQueueTimeoutMs;
是否存在 C#6 之前的 C# 等效项? 是否可以在.net framework 4 等旧版本中编写类似的方法?
您可以在项目中包含 Microsoft.Net.Compilers
NuGet 包,它将替换所使用的 C# 编译器,以便您可以面向 C#6.0。
https://www.nuget.org/packages/Microsoft.Net.Compilers/
这应该使您能够将 C#6.0 与 .NET 4 一起使用。我已经将它用于 .NET 4.5
这种语法叫做Expression-bodied function members。它等同于 ProxyQueueTimeoutMs
属性 和 getter 在 =>
部分之后的 returns 等同于;
private int ProxyQueueTimeoutMs
{
get
{
return ((MultiProxyCrawlConfiguration) _config).ProxyQueueTimeoutMs;
}
}
在 C# 6 之前你可以用这种方式做到这一点
private int ProxyQueueTimeoutMs
{
get
{
return ((MultiProxyCrawlConfiguration) _config).ProxyQueueTimeoutMs;
}
}
您可以在任何 .NET 版本中编写 C# 6,因为 C# 由编译器处理,而不是由 .NET Framework 版本处理。
它是私有只读 属性,使用新的 C# 6 表达式主体 属性 语法定义。
早期版本的 C# 的等效代码是
private int ProxyQueueTimeoutMs
{
get
{
return ((MultiProxyCrawlConfiguration)_config).ProxyQueueTimeoutMs;
}
}