Chyba kompilátoru CS0312
Typ type1 nelze použít jako parametr typu name v obecném typu nebo metodě name. Typ s možnou hodnotou null 'type1' nesplňuje omezení typu 'type2'.
Typ hodnoty s možnou hodnotou null se liší od jeho protějšku bez hodnoty null; mezi nimi neexistuje žádný implicitní převod odkazu ani identifikace převodu. Převod pole s možnou hodnotou null nevyhovuje omezení obecného typu. V následujícím příkladu je prvním parametrem Nullable<int>
typu a druhým parametrem System.Int32
typu je .
Odeberte omezení.
V následujícím příkladu nastavte druhý argument typu buď
int?
neboobject
.
Následující kód vygeneruje CS0312:
// cs0312.cs
class Program
{
static void MTyVar<T, U>() where T : U { }
static int Main()
{
MTyVar<int?, int>(); // CS0312
return 1;
}
}
I když se typ hodnoty s možnou hodnotou null liší od jiného typu než null, různé druhy převodů jsou povoleny mezi hodnotami s možnou hodnotou null a nenulovou hodnotou.
Zpětná vazba k produktu .NET
.NET je open source projekt. Vyberte odkaz pro poskytnutí zpětné vazby: