J'ai une question concernant l'appel de la méthode générique d'une classe avec un paramètre de type connu au moment de l'exécution.Appel d'une fonction générique avec un paramètre de type déterminé à l'exécution
En particulier, le code ressemble à ceci:
FieldInfo[] dataFields = this.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance);
// data is just a byte array used internally in DataStream
DataStream ds = new DataStream(data);
foreach (FieldInfo field in dataFields)
{
Type fieldType = field.FieldType;
// I want to call this method and pass in the type parameter specified by the field's type
object objData = (object) ds.Read<fieldType>();
}
La fonction de lecture() ressemble à ceci:
public T Read() where T : struct
but de cette fonction est de renvoyer des données lues à partir d'un tableau d'octets.
Existe-t-il un moyen d'appeler une méthode générique à l'exécution comme ceci?
Merci pour la réponse, je n'ai jamais vraiment considéré un changement de conception aussi simple. –
Mon problème ne ressemblait pas du tout à la question OP, mais vous avez démontré exactement ce que j'avais besoin de savoir. Merci! – KennyZ