gpt4 book ai didi

c# - 调用方法匿名类

转载 作者:太空狗 更新时间:2023-10-30 01:26:03 24 4
gpt4 key购买 nike

我是 C# 世界的新手,如果问题标题与内容不完全匹配,我深表歉意。但现在我的问题:

我有以下构造:

    public interface IClass<TEnum>
{
Dictionary<TEnum, ISecondClass> dictionary { get; }
}

public abstract class ClassBase<TEnum> : IClass<TEnum>
{
public abstract Dictionary<TEnum, ISecondClass> dictionary { get; protected set; }
}

public class ConcreteClass : ClassBase<ConcreteClass.Concrete>
{
public override Dictionary<Concrete, ISecondClass> dictionary { get; protected set; }

public enum Concrete : ulong
{

}
}

public class OtherClass : ClassBase<OtherClass.Other>
{
public override Dictionary<Concrete, ISecondClass> dictionary { get; protected set; }

public enum Other : ulong
{

}
}

我的目标是根据它的枚举实例化所有现有的具体类,将所有实例存储在字典中,然后在每个对象上调用一些方法。我不确定这是否可能?

我很高兴对此有任何提示!

最佳答案

如果我明白你想做什么,这听起来像是 Multiton Pattern 的一个版本.您可能会发现研究它很有用。

来自维基百科的示例 Multiton 代码:

class FooMultiton
{
private static readonly Dictionary<object, FooMultiton> _instances = new Dictionary<object, FooMultiton>();

private FooMultiton() {}

public static FooMultiton GetInstance(object key)
{
lock (_instances)
{
FooMultiton instance;
if (!_instances.TryGetValue(key, out instance))
{
instance = new FooMultiton();
_instances.Add(key, instance);
}
}
return instance;
}
}

这不能直接粘贴到您的类(class)中,但由于您正在寻找提示,我认为它应该为您指明正确的方向。

请注意上面的代码:如果未找到 key,方法 GetInstance 将更改字典。就个人而言,我将“Get”前缀与只读方法相关联。我会重命名 GetInstance 或将其拆分为两种方法。

不过,我不太确定“根据它的枚举实例化所有现有的具体类”是什么意思。你能澄清一下吗?

关于c# - 调用方法匿名类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5746055/

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