Tengo una clase con el deconstructor:
public void Deconstruct(out bool isSuccess, out TSuccess? value, out Error? error) {...} El valor de isSuccess define si el value o error es nulo.
¿Puedo de alguna manera informar al compilador sobre esto, de modo que cuando llamo:
var (isSuccess, value, error) = result;analizador sabe qué variable puede y no puede ser nula?
Según mi conocimiento no se puede.
La NotNullWhenAttribute se basa en el valor de retorno booleano. Por ejemplo:
bool TryExecute( [NotNullWhen(true)] out TSuccess? value, [NotNullWhen(false)] out Error? error) Dado que el deconstructor debe definirse de forma que su tipo de devolución sea void , no puede mezclar las dos técnicas.