3

I have a class with the deconstructor:

public void Deconstruct(out bool isSuccess, out TSuccess? value, out Error? error) {...}

Value of isSuccess defines whish of value or error is null.

Can I somehow let compiler know about this, so when I call:

var (isSuccess, value, error) = result;

analyzer knows which variable can and cannot be null?

Pavel Voronin
  • 13,503
  • 7
  • 71
  • 137

1 Answers1

1

According to my knowledge you can't.

The NotNullWhenAttribute postcondition relies on the boolean return value. For example:

bool TryExecute(
    [NotNullWhen(true)] out TSuccess? value, 
    [NotNullWhen(false)] out Error? error)

Since deconstructor must be defined in the way that its return type is void, you can't mix the two techniques.

Peter Csala
  • 17,736
  • 16
  • 35
  • 75