Utbildning
Modul
Implementera uppräknings-, struct- och posttyper - Training
Lär dig att skapa organiserad, underhållsbar kod med uppräknings-, struct- och posttyper i C#.
Den här webbläsaren stöds inte längre.
Uppgradera till Microsoft Edge och dra nytta av de senaste funktionerna och säkerhetsuppdateringarna, samt teknisk support.
Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Du kan använda strukturer tillsammans med matriser, objekt och procedurer samt med varandra. Interaktionerna använder samma syntax som dessa element använder individuellt.
Anteckning
Du kan inte initiera något av strukturelementen i strukturdeklarationen. Du kan endast tilldela värden till element i en variabel som har deklarerats vara av en strukturtyp.
En struktur kan innehålla en matris som ett eller flera av dess element. I följande exempel visas detta.
Public Structure systemInfo
Public cPU As String
Public memory As Long
Public diskDrives() As String
Public purchaseDate As Date
End Structure
Du kommer åt värdena för en matris i en struktur på samma sätt som du kommer åt en egenskap på ett objekt. I följande exempel visas detta.
Dim mySystem As systemInfo
ReDim mySystem.diskDrives(3)
mySystem.diskDrives(0) = "1.44 MB"
Du kan också deklarera en matris med strukturer. I följande exempel visas detta.
Dim allSystems(100) As systemInfo
Du följer samma regler för att komma åt komponenterna i den här dataarkitekturen. I följande exempel visas detta.
ReDim allSystems(5).diskDrives(3)
allSystems(5).CPU = "386SX"
allSystems(5).diskDrives(2) = "100M SCSI"
En struktur kan innehålla ett objekt som ett eller flera av dess element. I följande exempel visas detta.
Protected Structure userInput
Public userName As String
Public inputForm As System.Windows.Forms.Form
Public userFileNumber As Integer
End Structure
Du bör använda en specifik objektklass i en sådan deklaration i stället Object
för .
Du kan skicka en struktur som ett procedurargument. I följande exempel visas detta.
Public currentCPUName As String = "700MHz Pentium compatible"
Public currentMemorySize As Long = 256
Public Sub fillSystem(ByRef someSystem As systemInfo)
someSystem.cPU = currentCPUName
someSystem.memory = currentMemorySize
someSystem.purchaseDate = Now
End Sub
Föregående exempel skickar strukturen efter referens, vilket gör att proceduren kan ändra dess element så att ändringarna börjar gälla i den anropande koden. Om du vill skydda en struktur mot en sådan ändring skickar du den efter värde.
Du kan också returnera en struktur från en Function
procedur. I följande exempel visas detta.
Dim allSystems(100) As systemInfo
Function findByDate(ByVal searchDate As Date) As systemInfo
Dim i As Integer
For i = 1 To 100
If allSystems(i).purchaseDate = searchDate Then Return allSystems(i)
Next i
' Process error: system with desired purchase date not found.
End Function
Strukturer kan innehålla andra strukturer. I följande exempel visas detta.
Public Structure driveInfo
Public type As String
Public size As Long
End Structure
Public Structure systemInfo
Public cPU As String
Public memory As Long
Public diskDrives() As driveInfo
Public purchaseDate As Date
End Structure
Dim allSystems(100) As systemInfo
ReDim allSystems(1).diskDrives(3)
allSystems(1).diskDrives(0).type = "Floppy"
Du kan också använda den här tekniken för att kapsla in en struktur som definierats i en modul i en struktur som definierats i en annan modul.
Strukturer kan innehålla andra strukturer till ett godtyckligt djup.
Feedback om .NET
.NET är ett öppen källkod projekt. Välj en länk för att ge feedback:
Utbildning
Modul
Implementera uppräknings-, struct- och posttyper - Training
Lär dig att skapa organiserad, underhållsbar kod med uppräknings-, struct- och posttyper i C#.