実行時に既知の型パラメータを持つクラスのジェネリックメソッドを呼び出すことに関する質問があります。具体的には実行時に型パラメータが指定されたジェネリック関数を呼び出す
は、コードはそうのようになります。
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>();
}
読む()関数は、そのようになっています
public T Read() where T : struct
この機能の目的は、バイト配列から読み出されたデータを返すことです。
このように実行時に汎用メソッドを呼び出す方法はありますか?
返信いただきありがとうございます。私はこのようなシンプルなデザイン変更を考慮しませんでした。 –
私の問題はOPの質問のようには見えませんでしたが、あなたは私が知る必要があったことを正確に実証しました。ありがとう! – KennyZ