Я только что включил нулевую проверку в моем проекте. net core 3.1.
Проблема в том, что у меня есть класс ответа
public class DecryptResponse
{
public DecryptStatus Status { get; set; }
//This is the attribute in question
[NotNullWhen(Status==DecryptStatus.Ok)]
public Stream? Stream { get; set; }
public string? ErrorMessage { get; set; }
}
public enum DecryptStatus
{
Ok,
InvalidData,
KeyChecksumFailure,
NoData,
UnhandledError
}
В этой ситуации используется приведенное выше где метод Verify
не допускает значений NULL.
Но я знаю, что поток не является нулевым, поскольку DecryptStatus==Ok
if (decryptResponse.Status != DecryptStatus.Ok)
return (decryptResponse, null);
var verifyResponse = Verify(customerId, decryptResponse.Stream);
return (decryptResponse, verifyResponse);
Есть ли какие-либо теги, которые позволяют использовать этот logi c, или это требует серьезной переписывания кода ?