public interface IMaClasse { }
public class MaClasse<T> : IMaClasse { }
List list = new List(); list.Add(new MaClasse()); list.Add(new MaClasse<String>());
public interface IMaClasse { object Value { get; } } public class MaClasse<T> : IMaClasse { private T _value; public MaClasse( T value ) { _value = value; } public object Value { get { return _value; } } }
private void AddMaClasse( ref List mesClasses, object value ) { Type[] valueType = new Type[] { value.GetType() }; Type maClasseType = typeof( MaClasse<> ).MakeGenericType( valueType ); mesClasses.Add( (IMaClasse)maClasseType.GetConstructor( valueType ).Invoke( new object[]{ value } ) ); }
List mesClasses = new List(); AddMaClasse( ref mesClasses, 123 ); AddMaClasse( ref mesClasses, "Toto" ); AddMaClasse( ref mesClasses, 124.8D ); AddMaClasse( ref mesClasses, 124.8f );
public class maClass<T> { .. }
maClass<string> mc = new maClass<string>();
Type doubleType = typeof( Double ); Type doubleList = typeof( List<> ).MakeGenericType( new Type[]{ doubleType } ); // Instancie un objet de type List<Double> IList doubleListInstance = (IList)doubleList.GetConstructor( new Type[ 0 ] ).Invoke( null );
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionList<maClasse> list = new List<maClasse>(); list.Add(new maClasse<typeof(objet1)>()); list.Add(new maClasse<typeof(objet2)>());
new maClasse<typeof(objet1)>();