我有一个基类:
class SDKBaseClass
{
public SDKBaseClass();
public SDKBaseClass(EndpointAddress remoteAddress);
}
Run Code Online (Sandbox Code Playgroud)
要创建SDKBaseClass的对象:
string host = "192.168.0.1";
string port = "4321";
Uri uri = new Uri(string.Concat(new String[] {
"net.tcp://", host, ":", port
}));
SDKBaseClass sdkBaseClass = new SDKBaseClass(new EndpointAddress(uri, new AddressHeader[0]));
Run Code Online (Sandbox Code Playgroud)
我想创建继承自SDKBaseClass的子类:
class SDKChildClass : SDKBaseClass
{
SDKChildClass(string host, string port);
}
Run Code Online (Sandbox Code Playgroud)
以及在SDKChildClass构造函数中创建Uri对象的位置:
public SDKChildClass(string host, string port)
{
Uri uri = new Uri(string.Concat(new String[] {
"net.tcp://", host, ":", port
}));
//what's next?
}
Run Code Online (Sandbox Code Playgroud)
我迷路了,我不知道SDKChildClass构造函数中的下一个应该是什么.它应该从基类的一个构造函数继承吗?
PS.SDKBaseClass来自DLL库,所以我不知道它的构造函数实现.
将URI构造逻辑移动到一个方法并像这样调用它:
public SDKChildClass(string host, string port) : base(ConstructEndpoint(host, port))
{
}
Run Code Online (Sandbox Code Playgroud)
这称为构造函数链接.你可以链接到base()和this()