gpt4 book ai didi

c# - 如何在 C# 中使用用户输入访问构造函数

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

在我的程序中,我有一个特定类 Tracer(A1、B2、C3 等)的多个实例。使用名为 tracerListBox 的列表框,用户将确定他们想要使用的示踪剂。

假设每个跟踪器都有一个名为 family 的构造函数。

我知道如果我想访问 A1 的系列,我只需键入:

    A1.family

但是,我想编写代码来完成这样的事情:

    tracerListBox.Text.family

有没有办法将用户确定的值传递给构造函数?我基本上希望用户确定要使用哪个类跟踪器实例,然后使用该信息提取有关该特定跟踪器的所有信息。

在此先感谢您提供的任何帮助。

最佳答案

您正在寻找的是 factory method ,有时也称为虚拟构造函数(这在技术上是不正确的,因为它既不是构造函数也不是虚拟方法)。

您调用的不是调用构造函数,而是调用静态方法,该方法调用由传入的参数确定的类的构造函数。

interface ITracer {
void Trace(string s);
}
class TracerA : ITracer {
public void Trace(string s) {
// ...
}
}
class TracerB : ITracer {
public void Trace(string s) {
// ...
}
}
class TracerFactory {
public static ITracer Make(string name) {
if (name.Equals("A")) return new TracerA();
if (name.Equals("B")) return new TracerB();
throw new ApplicationException("Unknown: "+name);
}
}

关于c# - 如何在 C# 中使用用户输入访问构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9280143/

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