相关的通用参数

时间:2016-03-01 10:48:55

标签: c# generics

我有一个Dictionary<Type, Dictionary<Guid,Component>>,其中外部字典的键是存储在内部的对象的类型。

我想用泛型方法获取内部字典中的一个对象。类似的东西:

public T getObject<T>(Guid id, ???/*typeof(T) passed here*/) where T : Component

如何将第二个参数约束为typeof(T)?

2 个答案:

答案 0 :(得分:8)

正如@Chirs Pickford所说;首先不需要额外的参数。

如果你有这样的通用方法:

public T getObject<T>(Guid id) where T : Component
{
  // you can grab typeof(T) like this
  var type = typeof(T);
}

答案 1 :(得分:0)

如果您仍想这样做,则需要使用T:

标记您的课程
public class YourClass<T> where T: Component
{ 
    public T getObject<T>(Guid id, T myvalue) ...