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
.
Verwijder de beperking.
Maak in het volgende voorbeeld het tweede typeargument
int?
ofobject
.
Met de volgende code wordt CS0312 gegenereerd:
// 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.
.NET-feedback
.NET is een open source project. Selecteer een koppeling om feedback te geven: