Размер байта для типов не слишком интересен, когда вам приходится иметь дело только с одним языком (и для кода, который вам не нужно напоминать себе о математических переполнениях). Интересной становится часть, когда вы соединяете один язык с другим, C # с COM-объектом и т. Д., Или вы выполняете какое-то переключение битов или маскирование, и вам нужно напомнить себе (и вашим коллегам по пересмотру кода) размера данных.
На практике я обычно использую Int32 только для того, чтобы напомнить себе, какого они размера, потому что я пишу управляемый C ++ (например, для соединения с C #), а также неуправляемый / нативный C ++.
Как вы, наверное, знаете, в C # он 64-битный, но в нативном C ++ он заканчивается как 32-битный, или char - unicode / 16-битный, тогда как в C ++ он 8-битный. Но откуда мы это знаем? Ответ таков, потому что мы посмотрели это в руководстве, и там было сказано.
Со временем и опытом вы начнете быть более добросовестным, когда будете писать коды для связи между C # и другими языками (некоторые читатели здесь думают «почему вы?»), Но ИМХО, я считаю, что это лучше практиковаться, потому что я не могу вспомнить, что я кодировал на прошлой неделе (или мне не нужно указывать в своем документе API, что «этот параметр является 32-разрядным целым числом»).
В F # (хотя я никогда не использовал его) они определяют int , int32 и nativeint . Тот же самый вопрос должен подняться: «Какой из них я использую?». Как уже упоминали другие, в большинстве случаев это не должно иметь значения (должно быть прозрачным). Но я бы, например, выбрал int32 и uint32, чтобы убрать неясности.
Полагаю, это будет зависеть от того, какие приложения вы кодируете, кто его использует, какие практики кодирования вы и ваша команда выполняете и т. Д., Чтобы обосновать, когда следует использовать Int32.