gpt4 book ai didi

c# - 是否可以在不使用 New 关键字的情况下执行方法隐藏?

转载 作者:行者123 更新时间:2023-11-30 19:39:16 27 4
gpt4 key购买 nike

今天去面试了

Is it possible to perform Method Hiding without using New keyword?

据我所知,这是不可能的。所以我说了。

是否有任何(严重的)棘手/替代方法来执行方法隐藏?我曾经想到过Sealed....

也像Explicit Interface,是否有类似的东西...(不确定)

已编辑

作为关于这个主题的最后一个问题,就像我们可以为显式接口(interface)做的那样

 Interfacename.Method name

我们可以为派生类做类似的事情吗?

Class Derived:Base
{
public void Base.SomeMethod(){}
}

最佳答案

绝对 - 如果您不指定任何内容,您仍会获得与使用 new 修饰符相同的效果,但也会收到警告。

当然还有明确的接口(interface)实现。

在这两种情况下,只需将目标转换为不同的类型即可“取消隐藏”该方法:

((BaseClass) x).SomeMethod();
((IFoo) x).SomeMethod();

虽然密封类与方法隐藏无关 - 或者更确切地说,它通过确保没有派生类来防止任何派生类隐藏方法。

关于c# - 是否可以在不使用 New 关键字的情况下执行方法隐藏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28303474/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com