“?”类型的值不能用作默认参数 | .net 6 与 .net 4.8
A value of type '?' cannot be used as a default parameter | .net 6 vs .net 4.8
这段代码用于 .net core 6
:
WebCallResult<AddressInfo> CreateAddress(
string coin,
string walletId,
string label,
int chain = 0,
string gasPrice = default,
bool lowPriority = false,
CancellationToken cancellationToken = default(CancellationToken));
我想在.net framework 4.8
中使用它。
在 .net Framework 4.8 中我有这个错误:
A value of type '?' cannot be used as a default parameter because
there are no standard conversions to type 'string'
我该如何解决这个错误?
编辑:
此行发生错误:
string gasPrice = default,
问题在于,在 gasPrice = default
中,您正在为字符串设置 default
,而在 default 定义为字符串,即字符串的值将是 ?
而不是像 null
.
这样的可接受值
出于该特定原因(运行时版本),您必须设置 default(string)
或手动将值设置为 null
。可以找到对所有默认值的引用 here.
这段代码用于 .net core 6
:
WebCallResult<AddressInfo> CreateAddress(
string coin,
string walletId,
string label,
int chain = 0,
string gasPrice = default,
bool lowPriority = false,
CancellationToken cancellationToken = default(CancellationToken));
我想在.net framework 4.8
中使用它。
在 .net Framework 4.8 中我有这个错误:
A value of type '?' cannot be used as a default parameter because there are no standard conversions to type 'string'
我该如何解决这个错误?
编辑:
此行发生错误:
string gasPrice = default,
问题在于,在 gasPrice = default
中,您正在为字符串设置 default
,而在 ?
而不是像 null
.
出于该特定原因(运行时版本),您必须设置 default(string)
或手动将值设置为 null
。可以找到对所有默认值的引用 here.