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