public bool TryGetValue([NotNullWhen(true)] out T? value)
{
value = JsonSerializer.Deserialize(this.StringValue);
return value != null;
}
< /code>
При использовании такой реализации с типом ссылки я получаю предупреждение CS8602 при написании следующего кода: < /p>
if (property.TryGetValue(out var v))
{
v.ToString(); // OK
}
else
{
v.ToString(); // CS8602
}
< /code>
Но при написании с типами значений это не: < /p>
if (property.TryGetValue(out var v))
{
v.ToString(); // OK
}
else
{
v.ToString(); // OK
}
Можно ли написать такие методы для типов значений?
Рассмотрение следующего класса: < /p> [code]public class Property { public string StringValue { get; private set; }
private Property(string value) { this.StringValue = value; } } [/code] Я пытаюсь написать метод Trysomhing (с нулевым включенным). Я впервые написал что -то подобное: < /p> [code]public bool TryGetValue([NotNullWhen(true)] out T? value) { value = JsonSerializer.Deserialize(this.StringValue);
return value != null; } < /code> При использовании такой реализации с типом ссылки я получаю предупреждение CS8602 при написании следующего кода: < /p> if (property.TryGetValue(out var v)) { v.ToString(); // OK } else { v.ToString(); // CS8602 } < /code> Но при написании с типами значений это не: < /p> if (property.TryGetValue(out var v)) { v.ToString(); // OK } else { v.ToString(); // OK } [/code] Можно ли написать такие методы для типов значений?