Modules, structuren en klassen

Er zijn slechts drie manieren om een ​​VB.NET-toepassing te organiseren.

  • modules
  • structuren
  • Klassen

Maar de meeste technische artikelen gaan ervan uit dat je er al alles over weet. Als je een van de velen bent die nog een paar vragen heeft, kun je gewoon langs de verwarrende stukjes lezen en proberen het toch te achterhalen. En als je een hebt lot Na verloop van tijd kunt u beginnen met zoeken via de documentatie van Microsoft:

  • "Een module is een draagbaar uitvoerbaar bestand, zoals type.dll of application.exe, bestaande uit een of meer klassen en interfaces."
  • "Een klasse-instructie definieert een nieuw gegevenstype."
  • "De structuurinstructie definieert een samengesteld waardetype dat u kunt aanpassen."

Goed dan. Nog vragen?

Om een ​​beetje eerlijker te zijn voor Microsoft, hebben ze pagina's en pagina's (en meer pagina's) met informatie over al deze waar je doorheen kunt waden. En ze moeten zo exact mogelijk zijn, omdat ze de norm bepalen. Met andere woorden, de documentatie van Microsoft leest soms als een wetboek omdat het is een wetboek.

Maar als je alleen .NET aan het leren bent, kan dat heel verwarrend zijn! Je moet ergens beginnen. Het is een goed begin om de drie fundamentele manieren te begrijpen waarop u code kunt schrijven in VB.NET.

U kunt VB.NET-code schrijven met een van deze drie vormen. Met andere woorden, u kunt een maken Console applicatie in VB.NET Express en schrijf:

Module Module1
Sub Hoofd ()
MsgBox ("Dit is een module!")
Einde Sub
Einde module
Klasse Klasse 1
Sub Hoofd ()
MsgBox ("Dit is een klasse")
Einde Sub
Eindklasse
Structuur Struct1
Dim myString As String
Sub Hoofd ()
MsgBox ("Dit is een structuur")
Einde Sub
Eindstructuur

Dit maakt niet ieder zin als een programma, natuurlijk. Het punt is dat u geen syntaxisfout krijgt, dus het is een "legale" VB.NET-code.

Deze drie vormen zijn de enige manier om de bijenkoningin van heel .NET te coderen: het object. Het enige element dat de symmetrie van de drie vormen onderbreekt, is de uitspraak: Dim myString As String. Dat heeft te maken met een structuur die een "samengesteld gegevenstype" is, zoals Microsoft in hun definitie aangeeft.

Een ander ding om op te merken is dat alle drie blokken een hebben Sub Hoofd () in hen. Een van de meest fundamentele principes van OOP wordt meestal genoemd inkapseling. Dit is het "black box" -effect. Met andere woorden, u zou elk object onafhankelijk moeten kunnen behandelen en dat omvat het gebruik van identiek benoemde subroutines als u dat wilt.

Klassen

Klassen zijn de 'juiste' plek om te beginnen, omdat, zoals Microsoft opmerkt, "Een klasse een fundamentele bouwsteen is van object-georiënteerd programmeren (OOP)." Sommige auteurs beschouwen modules en structuren zelfs als speciale soorten klassen. Een klasse is meer objectgericht dan een module omdat het mogelijk is instantiate (maak een kopie van) een klasse maar geen module.

Met andere woorden, u kunt coderen ...

Formulier openbare klasse 1
Private Sub Form1_Load (_
ByVal-afzender als System.Object, _
ByVal e As System.EventArgs) _
Handgrepen MyBase.Load
Dim myNewClass As Class1 = New Class1
myNewClass.ClassSub ()
Einde Sub
Eindklasse

(De klasse-instantiëring wordt benadrukt.)