简体   繁体   中英

Deconstructors and nullable reference types

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?

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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM