关于C#:何时以及为什么将超类运算符重载隐藏在子类中?


When and why are superclass operator overloads hidden in a subclass?

我知道,如果子类提供了一个运算符方法(比如赋值),除非您明确地执行using superclass::operator=,否则它将在超类中隐藏该运算符,但是在我的代码中,我已经看到了需要执行此操作的情况即使子类根本不实现任何运算符。

是否存在具体的清单,其中隐藏了运算符(如果是一般情况,还有其他方法)而不会隐藏?


相关:麻烦C中的operator =继承。

operator=是编译器生成的唯一成员函数(构造函数和析构函数除外),因此,即使未在派生类中进行用户声明,也唯一隐藏的函数。