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

时间:2013-10-28 13:08:43

标签: c#

我正在将课程从public abstract AwesomeClass更改为public 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; }
}

1 个答案:

答案 0 :(得分:1)

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

public abstract class Foo
{
    public string Bar;
}

void UpdateFooBar(Foo foo)
{
    foo.Bar = "Updated";
}

您将abstract class Foo更改为sealed class FooUpdateFooBar(Foo foo)会继续有效吗?

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