Ho pensato a questo problema per un po 'e mi sembra che ci debba essere una soluzione semplice che mi manca.Costruttore corrispondente alla controparte nella definizione di tipo generico
Diciamo che ho la seguente classe:
public class Foo<T>
{
public Foo(T value)
{
}
public Foo(int value)
{
}
}
Se ottengo tutti i costruttori del tipo Foo<System.Int32>
mi metterò di nuovo due costruttori, entrambi con un unico parametro di tipo System.Int32
che non può essere differenziato.
Se ottengo tutti i costruttori dalla definizione di tipo generico di Foo<System.Int32>
(Foo<T>
), restituirò due costruttori. Uno che accetta un parametro generico T
e uno che accetta un parametro di tipo System.Int32
// Will return two constructors with signatures that look identical.
var type = typeof(Foo<int>);
var ctors1 = type.GetConstructors();
// Will return two constructors as well. Parameters can be differentiated.
var genericTypeDefinition = typeof(Foo<int>).GetGenericTypeDefinition();
var ctors2 = genericTypeDefinition.GetConstructors();
C'è un modo per abbinare un costruttore per la sua controparte nella sua definizione di tipo generico?
Wow. Molto più semplice di quanto pensassi. Grazie mille! – Patrik
il benvenuto :) – terrybozzio