加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – .net abstract override quirk

发布时间:2020-12-15 23:52:38 所属栏目:百科 来源:网络整理
导读:假设我有以下c#类: abstract class a{ protected abstract void SomeMethod();}abstract class b : a{ protected abstract override void SomeMethod();}class c : b{ protected override void SomeMethod() { }} 是否有任何意义覆盖b中的方法,当它可以很容
假设我有以下c#类:

abstract class a
{
    protected abstract void SomeMethod();
}

abstract class b : a
{
    protected abstract override void SomeMethod();
}

class c : b
{
    protected override void SomeMethod()
    {

    }
}

是否有任何意义覆盖b中的方法,当它可以很容易地写为:

abstract class b : a
{
}

写作b的“首选”方式是什么?如果没有重写覆盖抽象方法或属性的原因,为什么允许它?

解决方法

您可能想要允许它的一个原因:它显示意图.它解释了是的,你知道这个方法在基类中是抽象的.我知道,我仍然希望它在这里是抽象的.

这样,如果基类删除了方法,您的抽象类将无法编译,而不是仅仅具体类(甚至可能不在您的代码中).

那就是说,这不是一个特别重要的原因……我通常会把它排除在外.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读