有没有办法通过用实际类型参数替换部分或全部类型参数来覆盖虚拟泛型方法?
class A1
{
public virtual void Generic<T, U>(T t, U u) { }
}
class A2 : A1
{
public override void Generic<T,int>(T t, int u) { } //error
}
Run Code Online (Sandbox Code Playgroud)
感谢名单
尝试将通用参数移动到类.
class A1<T,U>
{
public virtual void Generic(T t, U u) { }
}
class A2<T> : A1<T , int>
{
public override void Generic(T t, int u) { }
}
Run Code Online (Sandbox Code Playgroud)
你的例子有点......通用.我确信这些类具有某种意义,因此以下架构是有意义的:
class A1<U>
{
public virtual void Generic<T>(T t, U u) { }
}
class A2 : A1<int>
{
public override void Generic<T>(T t, int u) { } // no error
}
Run Code Online (Sandbox Code Playgroud)