5

我正在将课程从public abstract AwesomeClass, 更改为public sealed AwesomeClass。我还添加了一个新属性。所有现有成员均未更改。我知道这是一个突破性的变化。通过反射实现AwesomeClass或依赖于抽象的客户端将被破坏。

我的问题是,只使用AwesomeClass我提供的实例成员的客户会被破坏(如果是的话)? 所有客户端都不会依赖于我实现的任何类型,AwesomeClass因为它们都是 internal。我觉得不会,但是...

这是之前和之后的课程:

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; }
}
4

1 回答 1

1

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

public abstract class Foo
{
    public string Bar;
}

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

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

是什么让你不敢尝试?但是,是的,它会的。

于 2013-10-28T13:12:38.177 回答