只是好奇。
如果我创建了特定类的2个对象,那么实例方法和实例变量的2个实例存在于该特定类的内存中?
编辑:我尝试使用static
,当然,只有一个成员实例存在但不确定实例变量。
答案 0 :(得分:2)
如果我创建了一个特定类的2个对象,那么实例方法的两个实例和实例变量是否存在于该特定类的内存中?
实例字段 - 是的。实例方法(包括属性访问器),没有。代码(实例和静态)在所有实例之间共享。
请注意,静态类将为每个使用的泛型参数创建一个额外的类型,并且每个类型将共享一组静态变量,例如:
// for example only, not intended to be a perfect singleton implementation
public class Singleton<T> where t : new()
{
private static T _Instance;
public T Instance()
{
return _Instance ?? (_Instance = new T());
}
}
Singleton<Class1>
和Singleton<Class2>
将在内存中为_Instance
分别包含不同的对象。