Great article. But your diagram could be improved, the arrow pointing from the stack to the heap is not right. The reference for an array is the memory location of the first element in the array, not before the first element.
Also “When you are storing reference types, use a class.” is redundant, because it’s impossible to store a reference type using a struct. A class is a reference type.
Other than that awesome article, thankyou!