【发布时间】:2021-12-30 08:25:50
【问题描述】:
public bool TryGetCustomerId(out Guid customerId)
{
customerId = Guid.Empty;
if (_contextAccessor.HttpContext?.Request.Headers.TryGetValue(CustomKnownHeaders.CustomerId,
out var values) ?? false)
{
return Guid.TryParse(values.FirstOrDefault(), out customerId);
}
return false;
}
从 .NET Core 3.1 迁移到 .NET 5 后,输出参数变量显示错误“使用未分配的局部变量”。
错误显示在“值”变量中。 错误 - “使用未分配的局部变量‘值’”
【问题讨论】:
-
TryGetValue(...) ?? false看起来很奇怪,因为TryGetValue()返回的bool永远不是null。如果你去掉?? false部分会发生什么? -
@Xiang 但是
HttpContext?.可能已经向那里传播了一个空值 -
@CaiusJard 啊,确实!抱歉,错过了那个问号。
-
出于好奇,为什么不迁移到 .NET 6?