我使用来自第三方库的课程A
。类有方法M
:
public class A
{
public int M(int x)
{
...
}
}
我用方法B
写了我的课M
:
public class B : A
{
public void M(params int[] xs)
{
}
}
然后在课程C
中,我想调用父类M
的方法A
public class C : B
{
public void M2()
{
int result = M(1);
}
}
但编译器将此行标记为错误。它尝试使用类M
的方法B
,返回void
如何在不重写类B
的情况下解决此冲突?
答案 0 :(得分:6)
我认为((A)this).M(1)
可以帮到你。请注意,如果这些方法在某处被虚拟/覆盖 - 事情可能会改变。
如上所述,我认为以这种方式隐藏方法是一个糟糕的想法,沟通不良的设计选择或一些hackery。至少我真的不需要这么想。