【问题标题】:<Type> as variable [duplicate]<Type> 作为变量 [重复]
【发布时间】:2014-03-28 23:03:54
【问题描述】:

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

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

【问题讨论】:

    标签: c# function variables types


    【解决方案1】:

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

    以下是您将如何通过反射来做到这一点:

    MethodInfo method = c.GetType()
                         .GetMethod("Load");
                         .MakeGenericMethod(this.t);
    
    LoadedFile = method.Invoke(path, new object[] {path});
    

    【讨论】:

      猜你喜欢
      • 2015-10-15
      • 1970-01-01
      • 2020-01-12
      • 2021-11-01
      • 2016-11-29
      • 1970-01-01
      • 2012-07-18
      • 2020-05-24
      • 2020-09-24
      相关资源
      最近更新 更多