我有一个数字列表,每个相同的数字应该完全相同。所以我对每个数字都有静态类,所以如果我改变类,它引用的所有数字也会改变。
访问数字的方式是通过包装函数,所以我不直接引用数组,例如:
Map.GetBlock(x,y).AccessToStaticClassMembers;
那么,我该怎么做呢?
我有一个数字列表,每个相同的数字应该完全相同。所以我对每个数字都有静态类,所以如果我改变类,它引用的所有数字也会改变。
访问数字的方式是通过包装函数,所以我不直接引用数组,例如:
Map.GetBlock(x,y).AccessToStaticClassMembers;
那么,我该怎么做呢?
为什么要让它成为静态的?如果我没听错的话,这看起来更像是对某些抽象方法或某些接口方法的实现的覆盖。
我不确定你想要什么。但听起来你试图确保每个数字在内存中只有一个实例。如果是这样的话,这样的事情有什么问题:
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];
}
}
当然,我省略了线程安全和在第一次访问中创建对象等内容,由您自己完成。