0

我有一个数字列表,每个相同的数字应该完全相同。所以我对每个数字都有静态类,所以如果我改变类,它引用的所有数字也会改变。

访问数字的方式是通过包装函数,所以我不直接引用数组,例如:

Map.GetBlock(x,y).AccessToStaticClassMembers;

那么,我该怎么做呢?

4

2 回答 2

1

为什么要让它成为静态的?如果我没听错的话,这看起来更像是对某些抽象方法或某些接口方法的实现的覆盖。

于 2010-12-21T10:27:40.077 回答
1

我不确定你想要什么。但听起来你试图确保每个数字在内存中只有一个实例。如果是这样的话,这样的事情有什么问题:

static public class ObjectMapping
{
    static Dictionary<int, object> dictionary = new Dictionary<int, object>();

    static public object GetObjectForNumber(int x)
    {
        object o;
        if (!dictionary.ContainsKey(x))
        {
            o = CreateObjectForNumberTheFirstTime(x);
            dictionary.Add(x, o);
            return o;
        }
        return dictionary[x];
    }
}

当然,我省略了线程安全和在第一次访问中创建对象等内容,由您自己完成。

于 2010-12-21T11:26:50.893 回答