c#抽象的替代方案

c#抽象的替代方案,c#,.net,C#,.net,如何强制派生形式实现基类的方法而不使其抽象 我收到的错误是“设计器必须创建类型为“X”的实例,但它不能,因为该类型已声明为抽象”。 提前谢谢。我将创建一个接口,以便每个表单都能实现它。您能详细说明一下您的问题吗?您不能强制一个类重写基类方法,除非它被标记为抽象,这也要求基类是抽象的。您是否考虑过为这些方法定义接口?您可以重写基类并定义抽象或虚拟方法。也许这就是你想要的。这在工作环境中是现实的。正如renato所说,您可以创建一个抽象基类,它需要构造函数中的接口。下面是我在AS3中所做的一个示例,

如何强制派生形式实现基类的方法而不使其抽象

我收到的错误是“设计器必须创建类型为“X”的实例,但它不能,因为该类型已声明为抽象”。
提前谢谢。

我将创建一个接口,以便每个表单都能实现它。您能详细说明一下您的问题吗?

您不能强制一个类重写基类方法,除非它被标记为抽象,这也要求基类是抽象的。您是否考虑过为这些方法定义接口?

您可以重写基类并定义抽象或虚拟方法。也许这就是你想要的。这在工作环境中是现实的。

正如renato所说,您可以创建一个抽象基类,它需要构造函数中的接口。下面是我在AS3中所做的一个示例,它应该很容易理解发生了什么,并将其应用到您的解决方案中:



我需要“虚拟地”应用限制或约束,预先要求每个可能的派生类必须实现接口或接收编译时错误。谢谢。不幸的是(在我的特殊情况下)这没有帮助。实际上,我需要一个VS2010设计器的解决方案。。。非常感谢。
public class PyramidenMain extends ProbabilityGame implements IProbabilityGame{
    public function PyramidenMain(){
        super(this);
        super.initialize();
    }   

    //implement interface
}

public interface IProbabilityGame{
        function getGame():MovieClip;
        function customInit():void;
        function customLoginSuccessful():void;
        function customLoginError(xml:XML):void;
        function customShowError(msg:String):void;
        function createDemoProtocol():IProtocol;
    }

public class ProbabilityGame {
    public function ProbabilityGame(game:IProbabilityGame) {
        if(game == null) {
            throw new Exception("unmet requirement, parameter containing an instance of IProbabilityGame");
        }
        _game = game;
    }

    public function initialize() {
        //do some logic
        _game.customInit();
    }
}