首页 > 解决方案 > 将抽象成员从受保护更改为公共是二进制重大更改吗?

问题描述

假设我有一个 C# 类:

public class Foo
{
    protected abstract void Bar();
}

我想Bar公开。这是一个二进制的重大变化吗?

我知道这是一个源头上的重大变化,因为一位消费者写道:

public class Baz : Foo
{
    protected override void Bar() { ... }
}

会得到一个编译器错误:CS0507 'Baz.Bar()': cannot change access modifiers when override 'public' inherit member 'Foo.Bar()'

标签: c#.netbackwards-compatibility

解决方案


推荐阅读