Los calificadores alcancePublic
y Friend
determine si los clientes en diferentes proyectos pueden ver el artículo.
Public
artículos serán accesibles al código de cliente en otros proyectos y de código en el mismo proyecto.
Friend
elementos solo son accesibles al código en el mismo proyecto, no para codificar en otros proyectos.
Private
los elementos solo están disponibles para el código en la misma clase.
Propiedades son diferentes de variables públicas, porque con propiedades que se pueden ejecutar su propio código cuando el cliente obtiene o establece el valor . EDITAR siguiendo el comentario de Deanna: También tenga en cuenta que las variables pueden pasar ByRef a una función y los cambios funcionarán como se esperaba. Este NO es el caso de las propiedades.
NB C# puede ser más moderno, pero en mi humilde opinión el tratamiento VB6 de propiedades y variables públicas es significantly better que el tratamiento .Net.
- En VB6 puede cambiar una variable pública en una propiedad sin romper los clientes. Ni siquiera tiene que volver a compilarlos. Not true en .Net.
- En VB6, las variables públicas se pueden usar con enlace de datos. Not true en .Net.
- En VB6 las variables públicas se pueden usar con las interfaces. Not true en .Net.
IMHO Microsoft cometió un error de diseño real al crear estas diferencias entre las propiedades y los campos públicos en .Net. ¿No convencido? Después de las primeras versiones de .Net, los compiladores C# y VB se modificaron para admitir automatically implemented properties. Esto le permite crear propiedades en una sola línea de código, de modo que luego sea posible agregar lógica en get/set sin causar problemas. En mi humilde opinión, esto prueba que las variables públicas deberían haberse hecho indistinguibles de las propiedades.
1 Suponiendo tipo de su proyecto en realidad permite a sus clases para ser utilizados por otros proyectos (es decir ActiveX DLL, OCX, o ActiveX EXE).
2 En los procedimientos Property Get
, Property Let
y Property Set
.
Er, se olvidó de las propiedades privadas. En cualquier caso, preguntas de este tipo se responden fácilmente leyendo el manual. – Bob77