Dataskjul i VB .NET
Dataskjul er en klasses evne til at begrænse adgangen for sine datamedlemmer til bestemte kategorier af metoder eller klasser.
Der er to typer data, der gemmer sig i VB .NET:
1. Indkapsling: Encapsulation, når det bruges i forbindelse med Visual Basic .NET, er teknikken til at pakke variabler og funktioner sammen inde i en klasse. Alle detaljer er pakket ind, så brugerne kun skal vide, hvordan klassen fungerer, og ikke hvordan den fungerer.
2. Tilgængelighedsmodifikator: Disse bruges til at angive adgangsniveauet for klassens elementer. Tilgængeligheden af klassemedlemmer (felter, metoder og egenskaber) kan ændres baseret på omfanget, hvor de kan tilgås.
Følgende tabel giver et overblik over de forskellige tilgængelighedsmodifikatorer med en forklaring af deres omfang.
| Modifikator | Omfang |
|-------|-------|
| Privat | Kun tilgængelig i klassen. |
| Beskyttet | Tilgængelig i klassen, dens afledte klasser og vennerne. |
| Intern | Tilgængelig i samlingen. |
| Beskyttet intern | Tilgængelig inden for samlingen og de afledte klasser. |
| Offentlig | Tilgængelig for alle andre klasser af projektet, klasserne i de forskellige projekter af den samme løsning og klasserne af andre projekter, der refererer til denne samling. |
| Ven | Tilgængelig for alle klasser af samme samling eller projekt. |
| Ikke arvelig | Kun tilgængelig for klassen og kan ikke nedarves |
Eksempel på dataskjul i VBNET:
```
Public Class kunde
Privat _id
Privat _fName
Privat _lNavn
Privat _e-mail
Offentlig ejendoms-id
Få
Returner _id
Afslut Get
Sæt (værdi)
Hvis værdi <=0, så
Kast nyt system.ArgumentException("ID skal være et positivt heltal.", "ID")
Afslut hvis
_id =værdi
Slut sæt
Afslut ejendom
Offentlig ejendoms fornavn
Få
Returner _fName
Afslut Get
Sæt (værdi)
_fName =værdi
Slut sæt
Afslut ejendom
Offentlig ejendoms efternavn
Få
Returner _lNavn
Afslut Get
Sæt (værdi)
_lName =værdi
Slut sæt
Afslut ejendom
E-mail til offentlig ejendom
Få
Returner _e-mail
Afslut Get
Sæt (værdi)
Hvis ikke IsValidEmail(værdi) Så
Smid nyt system.ArgumentException("Ugyldig e-mailadresse.", "E-mail")
Afslut hvis
_email =værdi
Slut sæt
Afslut ejendom
Privat delt funktion er gyldig e-mail(e-mail)
Dim emailRegex As String ="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$ "
Dim emailMatch As Boolean =Regex.IsMatch(email, emailRegex)
Returner emailMatch
Afslut funktion
Slut klasse
```
I ovenstående eksempel har vi defineret en klasse ved navn "Kunde", som indkapsler kundens detaljer såsom ID, Fornavn, Efternavn og E-mail. Vi har også defineret en privat delt metode ved navn "IsValidEmail", som bruges til at validere e-mailadressen. Klassemedlemmernes tilgængelighed styres ved hjælp af "Privat" og "Public" tilgængelighedsmodifikatorer. Egenskaben "ID" er markeret som "Privat", hvilket betyder, at den ikke kan tilgås uden for klassen. Egenskaberne `FirstName`, `LastName` og `Email` er markeret som `Public`, hvilket betyder, at de kan tilgås uden for klassen.