C# 访问静态成员是否调用基类构造函数?
即使所有的常识都说不,我还是问这个问题,只是为了得到第二个意见,并变得确定 如果我有这样的类层次结构:C# 访问静态成员是否调用基类构造函数?,c#,.net,entity-framework,garbage-collection,clr,C#,.net,Entity Framework,Garbage Collection,Clr,即使所有的常识都说不,我还是问这个问题,只是为了得到第二个意见,并变得确定 如果我有这样的类层次结构: public class IntermediateObjectContext : System.Data.Objects.ObjectContext { public static Action<string> PrintHello { get; set; } } public class MyDatabaseContext : IntermediateObjectCon
public class IntermediateObjectContext : System.Data.Objects.ObjectContext
{
public static Action<string> PrintHello { get; set; }
}
public class MyDatabaseContext : IntermediateObjectContext
{
public ObjectSet<Foo> Foos
{
get { // ... }
}
}
所有的理由都说不会,常识说不会,但我只是想确定一下。我正试图找到一个占用内存的对象
如果
如果我有一些类类型的静态集合,比如:
public class SomeClassCollection
{
private static Collection<SomeClass> _col =
new Collection<SomeClass>();
public void Add(SomeClass c) { _col.Add(c); }
public void Remove(SomeClass c) { _col.Remove(c); }
}
(1) 不,它不会实例化对象
(2) 如果:
在那里,它将在第一次访问SomeClassCollection
的任何成员时分配空集合col
从代码来看,这就是它所能做的。您没有在显示的代码中的任何位置使用\u col
。(1)不,它不会实例化对象
(2) 如果:
在那里,它将在第一次访问SomeClassCollection
的任何成员时分配空集合col
从代码来看,这就是它所能做的。您没有在显示的代码中的任何位置使用\u col
。(1)不,它不会实例化对象
(2) 如果:
在那里,它将在第一次访问SomeClassCollection
的任何成员时分配空集合col
从代码来看,这就是它所能做的。您没有在显示的代码中的任何位置使用\u col
。(1)不,它不会实例化对象
(2) 如果:
在那里,它将在第一次访问SomeClassCollection
的任何成员时分配空集合col
从代码来看,这就是它所能做的。您没有在显示的代码中的任何地方使用
\u col
。谢谢。请让我澄清这个问题。我忘了添加我确实要添加的SomeClass
类型实例到_列中的位。我之所以留下它,是因为我认为它很明显。@WaterCoolerv2好的,所以(2)将是相同的(忘了提到调用类构造函数算作被访问类的一个成员)。谢谢,@MatthewWatson。我最大的担心是:这些都会无意中实例化对象上下文,因为我的数据库有1200多个表,其中一些表的记录超过400万条。看起来不会,但我只是想确认一下,因为代码中出现了一些错误,占用了大量内存。谢谢。请让我澄清这个问题。我忘了添加我确实要添加的SomeClass
类型实例到_列中的位。我之所以留下它,是因为我认为它很明显。@WaterCoolerv2好的,所以(2)将是相同的(忘了提到调用类构造函数算作被访问类的一个成员)。谢谢,@MatthewWatson。我最大的担心是:这些都会无意中实例化对象上下文,因为我的数据库有1200多个表,其中一些表的记录超过400万条。看起来不会,但我只是想确认一下,因为代码中出现了一些错误,占用了大量内存。谢谢。请让我澄清这个问题。我忘了添加我确实要添加的SomeClass
类型实例到_列中的位。我之所以留下它,是因为我认为它很明显。@WaterCoolerv2好的,所以(2)将是相同的(忘了提到调用类构造函数算作被访问类的一个成员)。谢谢,@MatthewWatson。我最大的担心是:这些都会无意中实例化对象上下文,因为我的数据库有1200多个表,其中一些表的记录超过400万条。看起来不会,但我只是想确认一下,因为代码中出现了一些错误,占用了大量内存。谢谢。请让我澄清这个问题。我忘了添加我确实要添加的SomeClass
类型实例到_列中的位。我之所以留下它,是因为我认为它很明显。@WaterCoolerv2好的,所以(2)将是相同的(忘了提到调用类构造函数算作被访问类的一个成员)。谢谢,@MatthewWatson。我最大的担心是:这些都会无意中实例化对象上下文,因为我的数据库有1200多个表,其中一些表的记录超过400万条。看起来不会,但我只是想确认一下,因为在使用大量内存的代码中发生了错误。
public class SomeClassCollection
{
private static Collection<SomeClass> _col =
new Collection<SomeClass>();
public void Add(SomeClass c) { _col.Add(c); }
public void Remove(SomeClass c) { _col.Remove(c); }
}
public SomeClassCollectionConfig
{
public static RegisterSomeClasses()
{
SomeClassCollection.Add(new SomeClass());
SomeClassCollection.Add(new DerivesClassOfSomeClass());
}
}