gpt4 book ai didi

c# - 在运行时 C# 从不同的命名空间中选择对象?

转载 作者:行者123 更新时间:2023-11-30 12:16:13 25 4
gpt4 key购买 nike

是否可以在运行时为类选择命名空间。我们在不同的命名空间中有两个自动生成的对象副本。这是一个例子:

Namespace1
ClassA
ClassB

Namaspace2
ClassA
ClassB

以前,代码很简单,如下所示

using Namespace1
...
ClassA.AMethod()

但是,我们需要在运行时使用条件变量来选择命名空间。有没有一种方法可以定义 GetNamespace() 方法并像下面那样使用它,或者您有推荐的其他方法吗?

GetNamespace().ClassA.AMethod()

干杯,布拉克

最佳答案

据我所知,没有办法动态选择命名空间,但我认为您的情况非常适合使用 factory .为此,您的所有 A 类都必须派生自抽象类:

namespace Common {

public abstract class AbsA
{
//...
}

public class MyFactory
{
public MyFactory()
{
//...
}

public AbsA getA()
{
AbsA a;
if (condition)
a = new Namespace1.A();
else
a = new Namespace2.A();
return a;
}
}

}

然后你要求你的工厂创建对象:

MyFactory factory = new MyFactory();
labelMessage.Text = factory.getA().Something;

这会使您的结构稍微复杂一些,但也会使其更加连贯。

关于c# - 在运行时 C# 从不同的命名空间中选择对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5866442/

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