gpt4 book ai didi

c# - 隐藏继承类的构造函数

转载 作者:太空宇宙 更新时间:2023-11-03 18:15:18 26 4
gpt4 key购买 nike

请看这个例子:

public class X
{
public X()
{
MessageBox.Show("I'm X");
}
}

public class Y : X
{
public Y()
{
MessageBox.Show("I'm Y");
}
}


执行命令 Y y = new Y();时,将出现两个消息框-首先是“我是X”,然后是“我是Y”。

我该如何摆脱这种行为?制作新的 X时,我需要停止 Y的构造函数。

最佳答案

您可以使用工厂方法:

public class X {
private X() {}
protected virtual void Init(){
MessageBox.Show("I'm X");
}
public static GetX() {
X ret = new X();
ret.Init();
return ret;
}
}

public class Y : X {
private Y() {}
protected virtual void Init(){
MessageBox.Show("I'm Y");
}
public static GetY() {
Y ret = new Y();
ret.Init();
return ret;
}
}

关于c# - 隐藏继承类的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7461043/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com