gpt4 book ai didi

c# - 在 C# 中有条件地调用构造函数

转载 作者:太空狗 更新时间:2023-10-29 17:39:16 28 4
gpt4 key购买 nike

假设我在 C# 中有以下用于 Foo 的构造函数:

public Foo()
{
// ...
}
protected Foo(bool connect)
: this()
{
// ...
}

我正在寻找一种方法,只要 connect 参数为 true 就只执行 this() 部分。这些是执行此操作的方法吗?

(对于好奇的人:这背后的原因是 Foo 类创建连接到某些事物的对象;当它们被创建时,它们也应该总是尝试连接。现在,我我正在为它创建一个扩展 Foo 类的模拟器(或 MOCK)。这就是我要为其添加 protected 构造函数的原因;当使用这个时,应该有不创建实际连接的选项。我想在尽可能少地更改 Foo 类的同时实现它。)

最佳答案

不,您不能以这种方式有条件地调用 this()。但是,您可以将条件代码移动到 protected 构造函数,并从 public 构造函数中调用该构造函数:

public Foo() : this(true)
{

}

protected Foo(bool connect)
{
if(connect) //...
}

关于c# - 在 C# 中有条件地调用构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16768179/

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