Когда ты делаешь
TypeClass obj;
то ты обьявляешь лишь указатель на кусок памяти в куче, который указывает на null, в .NET поинтер весит вроде 4-8 байта (в зависимости от 32 или 64 разрядной версии). В когда ты делаешь
TypeClass obj = new TypeClass();
то помимо тех 4-8 байтов, у тебя аллокатор выделяет память на N байтов, и тут уже зависит от того что внутри класса находится, какие у него поля, каких типов, и тд.