我会尽量让它尽可能清楚!
最终目标是能够访问抽象类中的受保护方法。此方法也由抽象类继承。
抽象类有一个泛型,我需要我的类也是通用的(即创建一个通用适配器)。
这是抽象类(类似于结构的东西)。
public abstract class myAbstract<T> : ABaseClass<T> where T : SomeClass
{
}
这是抽象类继承的基类(具有我需要的方法)
public abstract class ABaseClass<T> : AnotherBase, IDisposable where T : SomeClass, SomeClass2
{
protected void foo(T somevar);
}
上面的类在DLL中,我无权访问。
这就是我要做的事情,需要正确的帮助!
public MainClass<T> : myAbstract<T> where T : SomeClass
{
public void somefunct()
{
this.foo(avariable);
}
}
答案 0 :(得分:1)
你的课应该看起来像这样:
//uncomment ", new()" if you want to create a new instance within the somefunct method
public class MainClass<T> : myAbstract<T> where T : SomeClass//, new()
{
//you don't HAVE to pass param if you'd prefer to create it in the method
public void somefunct(T param)
{
//uncomment this (and the ", new()" in the class declaration)
//if you want to create a new T instead of passing one in
//var instance = new T();
this.foo(param); //or use "instance" from above
}
}