gpt4 book ai didi

c# - 有初始化的设计模式吗? C#

转载 作者:行者123 更新时间:2023-12-02 10:47:09 24 4
gpt4 key购买 nike

我有一个名为initialize 的类,它在程序开始时运行。最初,我明确地硬编码了它应该实例化的所有类,但我想让它更通用并删除硬编码的类,以便我可以将类标记为关闭以进行修改。

我的第一个想法是创建一个类型队列,我的初始化类将循环遍历并实例化队列中的所有类型。

然后我想根据每个类来决定是否应该将其添加到队列中。通过从类内部将其自身添加到队列中。问题是我无法将类添加到队列中,除非它已经被实例化。我知道变量可以在运行之前初始化,但显然不能初始化方法。所以我一直在思考我想做的事情是否可行。

大致如下:

MyClass
{

initalize.instance.Enqueue(typeof(MyClass));
}

最佳答案

我的意思是这样的。

    public static class Initializer
{
public static void Initialize()
{
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
foreach (var type in assembly.GetTypes())
if (type.IsDefined(typeof(InitializeAttribute), true))
Console.WriteLine("Need to initialize {0}", type.FullName);
}
}

[AttributeUsage(AttributeTargets.Class)]
public sealed class InitializeAttribute : Attribute
{
}

[Initialize]
public sealed class ToBeInitialized
{
}

关于c# - 有初始化的设计模式吗? C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12323633/

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