2016-02-26 15 views
5

sto usando .net framework 4.5Il tipo 'MyObject' deve essere un tipo di valore non annullabile al fine di utilizzarlo come parametro 'T' nel tipo generico o il metodo 'Nullable <T>'

ottengo il seguente errore

Errore CS0453 il tipo 'MyObject' deve essere un tipo di valore non null per utilizzare come parametro 'T' nel tipo generico o metodo 'annullabile'

public async Task<Nullable<MyObject>> MyMethod(string myParamter) 
    {} 

Ho anche provato

public async Task<MyObject?> MyMethod(string myParamter) 
    {} 

Se ho impostato la cosa come nullable allora perché ottengo la linea rossa sotto il nome del metodo con questo messaggio di errore

Lo StackOverflow answer è facile, fare il tipo di ritorno nullable ma per me Visual Studio non lo consente.

+0

Qual è 'MyObject'? –

+0

'Nullable' viene utilizzato solo con tipi di valori non annullabili, per consentire al tipo di valore di consentire null. I tipi di riferimento consentono valori null per impostazione predefinita. –

+0

'public MyObject' – firste

risposta

11

Poiché MyObject è un oggetto e gli oggetti sono annullabili per definizione, non è possibile utilizzare la struttura Nullable<T> o l'operatore ? per supportare valori nulli.

Nullable<T> è per le strutture (come DateTime) e tipi di valore come int, float, ecc

Problemi correlati