non capisco cosa sta succedendo qui ...C errore enum # boxe con i generici
ho ottenuto il seguente errore: Il tipo 'TestApp.TestVal'
non può essere utilizzato come tipo di parametro 'T'
nel tipo generico o metodo 'TestApp.SomeClass<T>'
. Non è prevista la conversione di boxe da 'TestApp.TestVal'
a 'System.IComparable<TestApp.TestVal>'
.
Questo errore si verifica per il seguente codice:
public enum TestVal
{
First,
Second,
Third
}
public class SomeClass<T>
where T : IComparable<T>
{
public T Stored
{
get
{
return storedval;
}
set
{
storedval = value;
}
}
private T storedval;
}
class Program
{
static void Main(string[] args)
{
//Error is on the next line
SomeClass<TestVal> t = new SomeClass<TestVal>();
}
}
Dal momento che l'enum è un int
per impostazione predefinita e int di implementare l'interfaccia IComparable<int>
sembra che non ci dovrebbe essere un errore ....
di int implementare IComparable ma questo non significa che RandomEnumType implementa IComparable . –
AakashM