Tag: 抽象类

为什么在将类转换为未实现的接口时没有编译器错误?

如果我尝试从类到接口的无效转换,那么编译器不会抱怨(错误发生在运行时); 但是,如果我尝试对抽象类进行类似的转换,它会抱怨。 class Program { abstract class aBaz { public abstract int A { get; } } interface IBar { int B { get; } } class Foo { public int C { get; } } static void Main() { Foo foo = new Foo(); // compiler error, as expected, since Foo doesn’t inherit aBaz […]

Visual Studio设计器中的抽象UserControlinheritance

abstract class CustomControl : UserControl { protected abstract int DoStuff(); } class DetailControl : CustomControl { protected override int DoStuff() { // do stuff return result; } } 我在表单中删除了一个DetailControl。 它在运行时正确呈现,但设计器显示错误并且无法打开,因为基本用户控件是抽象的。 目前,我正在考虑以下补丁,这对我来说似乎很不对,因为我希望子类被强制实现该方法。 class CustomControl : UserControl { protected virtual int DoStuff() { throw new InvalidOperationException(“This method must be overriden.”); } } class DetailControl : CustomControl { […]