<type> as variable </type>

时间:2014-03-28 23:03:55

标签: c# function variables types

我有一个问题: 我在尝试:

    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);

1 个答案:

答案 0 :(得分:1)

这不是那么简单。通用方法在编译时绑定 。除了反射之外没有其他方法可以绑定到具有变量类型的泛型方法。

以下是 使用反射

进行操作的方法。

MethodInfo method = c.GetType()
                     .GetMethod("Load");
                     .MakeGenericMethod(this.t);

LoadedFile = method.Invoke(path, new object[] {path});