строка неизменна ссылочный тип.
Вы пытаетесь сказать?
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;
}
Значение типа значения хранится только в стеке, если оно (прямо или косвенно) является частью локальной переменной. См. Http://pobox.com/~skeet/csharp/memory.html –