Donde trabajo, se desaconseja el uso de Propiedades. Tenemos herramientas de generación de código para "acelerar las cosas". Todos los datos del objeto terminan siendo campos públicos. Si solicita propiedades de todos modos, obtendrá algo como esto:
Public sFoo as String
Public Property Foo as String
Get
Return sFoo
End Get
Set(ByVal value as String)
sFoo = value
End Set
End Property
No puedo pensar en un argumento razonable para hacer esto. ¿Hay alguna buena razón para usar tanto una propiedad pública con un campo público?