Sobes.tech
Junior — Middle

Is it possible to place a reference type variable on the stack?

sobes.tech AI

Answer from AI

In C#, a variable of a reference type itself is stored on the stack if it is declared as a local variable of a method. However, the object that this variable references is always located on the managed heap. That is, only a reference (pointer) to the object is stored on the stack, not the object itself.

Example:

void Method() {
    string s = "Hello"; // variable s is a reference stored on the stack
    // the "Hello" object is on the heap
}

Exception — if you use the stackalloc keyword or Span<T>, but these are special cases and do not apply to regular reference types.