Passando Objetos por Referência ou Valor em C #

Em C #, sempre pensei que variáveis não primitivas fossem passadas por referência e valores primitivos passados por valo

Então, ao passar para um método qualquer objeto não primitivo, qualquer coisa feita ao objeto no método afetará o objeto que está sendo passado. (Material C # 101)

No entanto, notei que, quando passo um objeto System.Drawing.Image, isso não parece ser o caso? Se eu passar um objeto system.drawing.image para outro método e carregar uma imagem nesse objeto, deixe o método fora do escopo e volte ao método de chamada, essa imagem não será carregada no objeto original?

Por que é isso

questionAnswers(7)

yourAnswerToTheQuestion