Se ho un'interfaccia generica con un paio di classi, come attuazione:Elenco di interfacce generiche
public interface IDataElement<T>
{
int DataElement { get; set; }
T Value { get; set; }
}
public class IntegerDataElement : IDataElement<int>
{
public int DataElement { get; set; }
public int Value { get; set; }
}
public class StringDataElement : IDataElement<String>
{
public int DataElement { get; set; }
public String Value { get; set; }
}
E 'possibile passare una collezione di classi di attuazione di tipi diversi, senza dover ricorrere a scomparsa come oggetto.
non sembra essere possibile definire un valori di ritorno come
public IDataElement<T>[] GetData()
o
public IDataElement<object>[] GetData()
Qualche suggerimento?
Avevo provato la classe base non generica ma perde il dettaglio della proprietà Value – benPearce
@benPearce: Ma non è possibile utilizzarlo comunque, perché non si conosce il tipo in questione. Si prega di provare a mostrare come si utilizza il codice e quindi possiamo consigliarvi meglio. –
Ho finito per passare all'interfaccia di base non generica, con i metodi oggetto GetValue() e SetValue (oggetto). Funzionando così lontano – benPearce