【发布时间】:2025-12-11 03:35:01
【问题描述】:
我有以下两个用例:
class BaseCalculator
{
public int Sum(int x, int y)
{
return x + y;
}
}
class Calculator : BaseCalculator
{
public new int Sum ( int x , int y )
{
return x + y;
}
}
这确实使用new 关键字显式隐藏了Sum 方法。
class BaseCalculator
{
public int Sum(int x, int y)
{
return x + y;
}
}
class Calculator : BaseCalculator
{
public int Sum ( int x , int y )
{
return x + y;
}
}
我不明白两者之间的区别。第二个代码是否隐式隐藏了 Sum 方法?
【问题讨论】:
-
是的,它隐式隐藏了基类的 Sum 方法。这仍然非常糟糕(我认为会产生警告?) - 在这种情况下始终使用 new 或 override 。这将清楚您的意图是什么,并且您并没有忘记它。
-
区别在于你的编译器输出窗口,使用
new时少了1个警告。
标签: c# method-hiding