2013-04-25 3 views
0

Как CLR выделяет память в этих двух случаях:
Являются ли они оба выделены в области статической памяти?Распределение памяти на C#: Разница между статическим классом и статическим экземпляром

static class A 
{ 
    //Some methods 
} 

и

class A 
{ 
    //Some methods  
} 
class B 
{ 
    static A inst = new A(); 
    //Some methods 
} 

Для ниже заявления, будет компилятор

static A inst = new A(); 

выделить A в куче и назначить его к статическому ссылка инст ссылки? Или он создаст статический экземпляр в Высокочастотная куча?

+0

duplicate ???? http://stackoverflow.com/questions/6719126/memory-allocation-for-regular-class-static-class-static-method-instanve-method-a – Freelancer

+0

Спасибо @Freelancer, но связанная вами ссылка похожа, но не " t ответьте на мой запрос. – crapple

ответ

0

Статические поля - это любые статические поля, независимо от того, является ли класс статическим или статическим.

Статический класс - это всего лишь язык, чтобы гарантировать, что все участники статичны, не более того. В .NET статические классы даже не существуют: статический класс будет преобразован в «нормальный» класс с частным конструктором экземпляра. Таким образом, экземпляр этого класса нельзя построить.

Смежные вопросы