C# Out 丢弃,兼容 C#6
C# Out Discard, Make Compatible With C#6
我正在修改程序的源代码以使其支持 C# 6 编译器。该源代码目前与 C# 7 兼容,并利用了 C# 7 中语法的一些新更改。因此显然它无法使用 C# 6 编译器进行编译。
我已经完成了大部分的事情。
例如,这一行(与 C# 6 不兼容):
var type = transmissionType(freqDest, freqFactor, out var bytes);
为了与 C# 6 编译器兼容,必须更改为:
byte[] bytes;
var type = transmissionType(freqDest, freqFactor, out bytes);
但我最近遇到了这一行(与 C# 6 不兼容):
public byte[] Receive() => Receive(out _, out _, out _);
而且我不太确定如何 rewrite/change 这样它才能与 C# 6 编译器兼容。 out _
似乎是自 C# 7 发布以来在 C# 中实现的某种丢弃类型。
C# discard 变量基本上是您知道不会使用的函数调用的变量结果。您可以只声明变量而不使用它们。
public byte[] Receive()
{
get
{
var a, b, c;
return Receive(out a, out b, out c);
}
}
我正在修改程序的源代码以使其支持 C# 6 编译器。该源代码目前与 C# 7 兼容,并利用了 C# 7 中语法的一些新更改。因此显然它无法使用 C# 6 编译器进行编译。
我已经完成了大部分的事情。
例如,这一行(与 C# 6 不兼容):
var type = transmissionType(freqDest, freqFactor, out var bytes);
为了与 C# 6 编译器兼容,必须更改为:
byte[] bytes;
var type = transmissionType(freqDest, freqFactor, out bytes);
但我最近遇到了这一行(与 C# 6 不兼容):
public byte[] Receive() => Receive(out _, out _, out _);
而且我不太确定如何 rewrite/change 这样它才能与 C# 6 编译器兼容。 out _
似乎是自 C# 7 发布以来在 C# 中实现的某种丢弃类型。
C# discard 变量基本上是您知道不会使用的函数调用的变量结果。您可以只声明变量而不使用它们。
public byte[] Receive()
{
get
{
var a, b, c;
return Receive(out a, out b, out c);
}
}