我有一个问题: 我在尝试:
private struct QueuedFile
{
public Type t;
public object LoadedFile;
public string path;
public bool loaded;
public ContentManager c;
public QueuedFile(string path, Type t, ContentManager c)
{
this.t = t;
this.path = path;
LoadedFile = null;
loaded = false;
this.c = c;
}
public void Load()
{
LoadedFile = c.Load<this.t>(path); //<--ERROR: <this.t>
loaded = true;
}
}
但这给了我一个错误。有谁知道如何保存变量T的方法,如:
public T LoadFileByType<T>(string path);
答案 0 :(得分:1)
这不是那么简单。通用方法在编译时绑定 。除了反射之外没有其他方法可以绑定到具有变量类型的泛型方法。
以下是 使用反射
进行操作的方法。MethodInfo method = c.GetType()
.GetMethod("Load");
.MakeGenericMethod(this.t);
LoadedFile = method.Invoke(path, new object[] {path});