Leggere in inglese

Condividi tramite


Errore del compilatore CS0450

'Type Parameter Name': non è possibile specificare sia una classe constraint che il vincolo 'class' o 'struct'

Se un parametro di tipo è soggetto a un vincolo di tipo struct, è logicamente contraddittorio che sia vincolato anche da un determinato tipo di classe perché struct e class sono categorie che si escludono a vicenda. Se un parametro di tipo è vincolato da un determinato tipo di classe, per definizione è soggetto al vincolo di tipo classe, quindi è ridondante specificare il vincolo di tipo classe.

Esempio

// CS0450.cs  
// compile with: /t:library  
public class GenericsErrors
{  
    public class B { }  
    public class G3<T> where T : struct, B { } // CS0450  
// To resolve, use the following line instead:  
// public class G3<T> where T : B { }  
}