La ocultación de datos es la capacidad de una clase de restringir el acceso de sus miembros de datos a ciertas categorías de métodos o clases.
Hay dos tipos de datos ocultos en VB .NET:
1. Encapsulación: La encapsulación, cuando se usa en el contexto de Visual Basic .NET, es la técnica de empaquetar variables y funciones dentro de una clase. Todos los detalles están resumidos para que los usuarios sólo necesiten saber cómo funciona la clase y no cómo funciona.
2. Modificador de accesibilidad: Estos se utilizan para especificar el nivel de acceso de los elementos de la clase. La accesibilidad de los miembros de la clase (campos, métodos y propiedades) se puede cambiar según el ámbito donde se puede acceder a ellos.
La siguiente tabla ofrece una descripción general de los diferentes modificadores de accesibilidad con una explicación de sus alcances.
| Modificador | Alcance |
|-------|-------|
| Privado | Disponible solo dentro de la clase. |
| Protegido | Disponible dentro de la clase, sus clases derivadas y los amigos. |
| Interno | Disponible dentro del conjunto. |
| Interno protegido | Disponible dentro del ensamblaje y las clases derivadas. |
| Público | Disponible para todas las demás clases del proyecto, las clases de los diferentes proyectos de la misma solución y las clases de otros proyectos que hacen referencia a este ensamblaje. |
| Amigo | Disponible para todas las clases de un mismo montaje o proyecto. |
| No heredable | Disponible solo para la clase y no se puede heredar |
Ejemplo de ocultación de datos en VBNET:
```
Cliente de clase pública
_id privado
Privado _fName
Privado _lName
Correo electrónico privado
Identificación de propiedad pública
Conseguir
Devolver _id
Fin de obtención
Establecer (valor)
Si valor <=0 Entonces
Lanzar New System.ArgumentException ("ID debe ser un número entero positivo.", "ID")
Terminar si
_id =valor
Conjunto final
Propiedad final
Nombre de propiedad pública
Conseguir
Devolver _fNombre
Fin de obtención
Establecer (valor)
_fNombre =valor
Conjunto final
Propiedad final
Apellido de propiedad pública
Conseguir
Devolver _lNombre
Fin de obtención
Establecer (valor)
_lNombre =valor
Conjunto final
Propiedad final
Correo electrónico de propiedad pública
Conseguir
Devolver _correo electrónico
Fin de obtención
Establecer (valor)
Si no es IsValidEmail (valor) entonces
Lanzar New System.ArgumentException("Dirección de correo electrónico no válida.", "Correo electrónico")
Terminar si
_correo electrónico =valor
Conjunto final
Propiedad final
Función privada compartida IsValidEmail(correo electrónico)
Dim emailRegex As String ="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$ "
Dim emailMatch As Boolean =Regex.IsMatch(correo electrónico, emailRegex)
Devolver correo electrónicoCoincidencia
Función final
Fin de clase
```
En el ejemplo anterior, hemos definido una clase llamada "Cliente" que encapsula los detalles del cliente, como ID, nombre, apellido y correo electrónico. También hemos definido un método privado compartido llamado "IsValidEmail" que se utiliza para validar la dirección de correo electrónico. La accesibilidad de los miembros de la clase se controla mediante los modificadores de accesibilidad "Privado" y "Público". La propiedad "ID" está marcada como "Privada", lo que significa que no se puede acceder a ella fuera de la clase. Las propiedades `FirstName`, `LastName` y `Email` están marcadas como `Public`, lo que significa que se puede acceder a ellas desde fuera de la clase.