und*_*oft 7 c# constructor abstract-class
好吧,我正在尝试重用一部分C#代码.它是一个带UDP服务器的抽象类,可以在这里看到:
http://clutch-inc.com/blog/?p=4
我已经创建了一个这样的派生类:
public class TheServer : UDPServer
{
protected override void PacketReceived(UDPPacketBuffer buffer)
{
}
protected override void PacketSent(UDPPacketBuffer buffer, int bytesSent)
{
}
}
Run Code Online (Sandbox Code Playgroud)
在我的应用程序中,我创建了一个派生类的实例,如下所示:
TheServer serv = new TheServer(20501);
serv.Start();
Run Code Online (Sandbox Code Playgroud)
但我有错误,我不明白为什么.请帮忙.
Tam*_*ege 13
构造函数不会在C#中继承.您必须手动链接它们:
public TheServer(int port)
: base(port)
{
}
Run Code Online (Sandbox Code Playgroud)
此外,如果Start受保护,则必须创建一种调用它的公共方法:
public void StartServer()
{
Start();
}
Run Code Online (Sandbox Code Playgroud)
派生类需要添加一个参数构造函数,并将其委托给基类:
public TheServer(int port) : base(port) {}
Run Code Online (Sandbox Code Playgroud)
此外,该Start
方法受到保护.你需要自己的:
public void StartMe(){base.Start();}
Run Code Online (Sandbox Code Playgroud)