За C# това не е вярно, можеш да си сглобиш типове които се предават по value, можеш и да взимаш pointers към тях, дори някои дето по принцип ходят на хийпа можеш да ги накараш да се алокират на стека. Не е сравнимо със C++ където всеки тип можеш да го пляснеш където искаш и да го предаваш както искаш според случая, но определено може ако ти е важно