C#Generic Type作为参数

时间:2017-09-22 19:54:33

标签: c# generics

我有以下接口和类:

public abstract class A {}
public abstract class B<T> : IType<T>
{
    public T Value { get; set; }
}

public interface IType<T>
{
    T Value { get; set; }
}

public class C : B<String>, IType<String> { }
public class D : B<Int32>, IType<Int32> { }

如何在不使用A的情况下将C或D作为方法参数传递? 因此,参数类型必须为IType<T>B<T>

不幸的是,我对仿制药不熟悉,所以任何帮助都会感激不尽。谢谢!

修改

我想要实现的是以下(不会编译)

public void SetB(B<T> Type)
{
    //Do stuff...
}

这样我就可以将C或D传递给该方法。

1 个答案:

答案 0 :(得分:1)

您的方法也可以是generic

public void MyMethod<T>(IType<T> arg)
{
    throw new NotImplementedException();
}

您可以这样称呼它。

MyMethod(new C());
MyMethod(new D());