Errore del compilatore CS0460
I vincoli per i metodi di override e di implementazione esplicita di interfacce sono ereditati dal metodo base, pertanto non possono essere specificati in maniera diretta
Quando un metodo generico che fa parte di una classe derivata esegue l'override di un metodo nella classe base, non è possibile specificare vincoli per il metodo sottoposto a override. Il metodo di override nella classe derivata eredita i vincoli dal metodo nella classe base.
L'esempio seguente genera l'errore CS0460.
// CS0460.cs
// compile with: /target:library
class BaseClass
{
BaseClass() { }
}
interface I
{
void F1<T>() where T : BaseClass;
void F2<T>() where T : struct;
void F3<T>() where T : BaseClass;
}
class ExpImpl : I
{
void I.F1<T>() where T : BaseClass {} // CS0460
void I.F2<T>() where T : class {} // CS0460
}
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback: