Condividi tramite


Errore del compilatore CS1763

Un valore di parametro predefinito di un tipo riferimento non stringa può essere inizializzato solo con Null.

Esempio

L'esempio seguente genera l'errore CS1763:

// CS1763.cs (0,0)
class Program
{
    public void Goo<T, U>(T t = default(U)) where U : T
    {
    }
    static void Main(string[] args)
    {
        
    }
}

Questo esempio genera l'errore CS1763 perché il Goo<T,U> parametro viene dichiarato con un valore predefinito default(U) quando il tipo del parametro è T, nonostante il vincolo che U deriva dalla classe baseT.

Per correggere l'errore

La modifica default(U) per l'uso dell'argomento di tipo generico corrispondente corregge questo errore:

    public void Goo<T, U>(T t = default(T)) where U : T
    {
    }