将从抽象类更改为密封类中断简单客户端使用

ben*_*ruk 5 c#

我改变了从一类public abstract AwesomeClasspublic sealed AwesomeClass.我还添加了一个新房产.所有现有成员均未变更.我知道这是一个突破性的变化.AwesomeClass通过反射实现或依赖它的客户将被打破.

我的问题是,那些只使用AwesomeClass我所提供的实例成员的客户是否会被破坏(如果是的话,那么如何)? 任何客户都不会依赖我实现的任何类型,AwesomeClass因为它们都是内部的.我想不是,但......

这是前后的课程:

public abstract class AwesomeClass
{
    public abstract Guid SuperGuid { get; set; }
    public abstract int SuperInt { get; set; }
}

public sealed class AwesomeClass
{
    public Guid SuperGuid { get; set; }
    public int SuperInt { get; set; }
    public int OtherSuperInt { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

Cod*_*ter 1

你的意思是当你有这个时:

public abstract class Foo
{
    public string Bar;
}

void UpdateFooBar(Foo foo)
{
    foo.Bar = "Updated";
}
Run Code Online (Sandbox Code Playgroud)

而你换成abstract class Foosealed class FooUpdateFooBar(Foo foo)继续工作吗?

是什么阻止了你尝试?但是,是的,它会的。