Lezen in het Engels

Delen via


Compilerfout CS0312

Het type 'type1' kan niet worden gebruikt als typeparameter 'name' in het algemene type of methode 'name'. Het null-type 'type1' voldoet niet aan de beperking van 'type2'.

Een waardetype dat null kan worden gebruikt, verschilt van zijn niet-null-equivalent; er bestaat geen impliciete verwijzingsconversie of identificatieconversie tussen deze conversies. Een conversie van null-boksen voldoet niet aan een algemene typebeperking. In het volgende voorbeeld is de eerste typeparameter een Nullable<int> en de tweede typeparameter is een System.Int32.

Deze fout corrigeren

  1. Verwijder de beperking.

  2. Maak in het volgende voorbeeld het tweede typeargument int? of object.

Opmerking

Met de volgende code wordt CS0312 gegenereerd:

C#
// cs0312.cs  
class Program  
{  
    static void MTyVar<T, U>() where T : U { }  
  
    static int Main()  
    {  
        MTyVar<int?, int>(); // CS0312  
        return 1;  
    }  
}  

Hoewel een type nullable waarde verschilt van een niet-nullable type, zijn verschillende soorten conversies toegestaan tussen null-waarden en niet-null-waarden.

Zie ook