2009-02-24 7 views

ответ

2

строка неизменна ссылочный тип.

Вы пытаетесь сказать?

struct Refsample<T> where T : class 

struct self - тип значения, но он может содержать ссылочный тип.

Тип переменной, хранящийся в стеке памяти, но переменная ссылочного типа имеет адрес памяти, указывающий на кучу.

например.

struct Refsample<T> where T : class 
{ 
    // stored in the stack as well. 
    public int Age; 

    // memory address pointing to the heap stored in the stack, 
    // but the actual object is stored in the heap. 
    public string Name; 
    // same as string above if T was reference type; 
    // otherwise, if value type, same as Age above. 
    public T SomeThing; 
} 
+0

Значение типа значения хранится только в стеке, если оно (прямо или косвенно) является частью локальной переменной. См. Http://pobox.com/~skeet/csharp/memory.html –

2

System.String - ссылочный тип, хотя он имеет некоторые характеристики типа значения.

1

Строка действительно ссылочный тип, который действует как тип значения. Вот почему вы можете проверить значение null для строки, и вы не можете использовать int, bool и т. Д. Ну, вы можете, но вы получите только значение по умолчанию 0, false и т. Д.

1

System.String - это ссылочный тип не тип значения.

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