В языках C-Style (например, C #) вы должны выставлять поля через свойства. Это также относится к VB.NET и другим языкам .NET, так как они используют один и тот же базовый движок. Основная причина сделать это состоит в том, что
Публичное MyField как целое число не равно общему свойству MyField как целое число. Они не имеют одинакового поведения во всех ситуациях в .NET.
Однако вы, вероятно, увидите, что многие люди продолжают публиковать поля. Отчасти это связано с тем, как VB6 обрабатывает COM. В VB6 открытый MyField как целое число эквивалентно общему свойству MyField как целое число. Потому что когда оба переводятся в COM-библиотеку типов, они оба реализуются одинаково.
Это привело к множеству странных ограничений в VB6 в отношении того, что может быть публичным полем. Ограничения, которых нет в .NET и многих других объектно-ориентированных языках. Эти ограничения перехватываются во время компиляции, поэтому программист, так сказать, не может выстрелить себе в ноги. Если ваш класс был закрытым в VB6, некоторые из этих ограничений, но не все, были ослаблены. Общее правило состояло в том, что вы можете выставлять только классы и типы данных как открытые поля.
Наследие VB6 означает, что есть много программистов, которые не знают, что есть разница в .NET.
Поскольку .NET не помогает нам в этом отношении, вам нужно сделать традиционный шаг, чтобы убедиться, что все поля открыты через свойства. Опять же, потому что в .NET поле не совпадает с свойством.
В этой статье (на которую указывают другие) объясняется сторона .NET.