我正在将一个类从 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; }
}
最佳答案
你的意思是当你有这个:
public abstract class Foo
{
public string Bar;
}
void UpdateFooBar(Foo foo)
{
foo.Bar = "Updated";
}
并且您将abstract class Foo
更改为sealed class Foo
,UpdateFooBar(Foo foo)
会继续工作吗?
是什么阻止了您尝试?但是,是的,它会。
关于c# - 将从抽象类变为密封类打破简单的客户端使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19635680/