Простіше кажучи, це не так добре, як це зробити, і я скажу вам чому, трохи пізніше, коли ваше рішення стане великим, ви забудете, де такі класи, як ім'я файлу більше не буде представляти вміст, яке ім'я файлу AnimalPersonObject.cs це просто неможливо.
Впевнені, що ви зможете обійти це, скориставшись такими інструментами, як resharper, щоб перейти до типів, але 1 клас на файл (включаючи інтерфейси) справді є основою будь-якого стандарту коду, який я коли-небудь бачив, не лише в .net, а в Java та c ++ і безліч інших мов, тих, які не мають часто проблем з обслуговуванням, і ви знайдете молодших розробників, яким важко зрозуміти код.
Практично всі інструменти оптимізації коду підкажуть вам перенести класи в окремий файл, тож для мене так, це запах коду і потребує певного уникнення, щоб його нейтралізувати :)