Page 1 of 1

Nullable Generics in Methoden - braucht Erklärung

Posted: 25 Jan 2025, 14:17
by Guest
Kann jemand erklären, warum das erlaubt ist:

Code: Select all

class A1
{
public virtual T? F1(T? t) where T : struct { throw new NotImplementedException(); }
public virtual T? F1(T? t) where T : class { throw new NotImplementedException(); }

}
während dies nicht der Fall ist:

Code: Select all

class A1
{
public virtual T? F1(T t) where T : struct { throw new NotImplementedException(); }
public virtual T? F1(T t) where T : class { throw new NotImplementedException(); }

}
"Typ 'A1' definiert bereits ein Mitglied namens 'F1' mit denselben Parametertypen"
der Unterschied Ist das so, dass im zweiten Fall die Argumente nicht nullbar sind?
Wie kommt es, dass die Signaturen gleich sind, wenn es sich in einem Fall um Werttypen und in einem anderen Fall um Referenztypen handelt?