Definiera och Använda en Struktur
Du definierar en struktur med följande syntax:
index.cs
1234567struct structureName { public datatype fieldName1; public datatype fieldName2; public datatype fieldName3; ... }
Till exempel kan du definiera en struktur för att lagra viss studentdata:
index.cs
12345678struct Student { public int id; public float age; public string name; public string course; public char grade; }
För att lagra data behöver du skapa en instans (även kallad ett objekt) med denna struktur. En struktur är i grunden en anpassad datatyp och kan därför behandlas som en sådan. För att skapa ett nytt objekt av strukturen använder du följande syntax:
index.cs
1structName variableName;
Du kan skapa flera objekt av klassen Student
, vilka alla kan lagra data:
index.cs
123Student student1; Student student2; Student student3;
Varje objekt du har skapat har de fält som definieras i strukturen Student
och du kan lagra och komma åt data från dessa fält med syntaxen variableName.fieldName
. Till exempel kan du komma åt och skriva ut fältet name
för student2
:
index.cs
1Console.WriteLine(student2.name);
När ett tomt objekt skapas får fälten nollvärden beroende på deras datatyper:
string
- tom sträng""
;char
- tom tecken''
;int
-0
;float
-0.0
;bool
-false
.
Därför kommer student2.name
att ge ett tomt resultat.
Du kan lagra data i det med tilldelningsoperatorn (=
):
index.cs
1student2.name = "Alex";
På detta sätt kan du lagra data i alla tre objekten:
index.cs
123456789101112131415161718192021222324252627282930313233343536373839using System; struct Student { public int id; public float age; public string name; public string course; public char grade; } class ConsoleApp { static void Main(string[] args) { Student student1; student1.id = 1; student1.name = "Abigail"; student1.age = 21; student1.course = "C#"; student1.grade = 'A'; Console.WriteLine($"{student1.name} is {student1.age} years old."); Student student2; student2.id = 2; student2.name = "Alex"; student2.age = 22; student2.course = "C#"; student2.grade = 'B'; Console.WriteLine($"{student2.name} has a {student2.grade} in {student2.course}."); Student student3; student3.id = 3; student3.name = "Jennifer"; student3.age = 19; student3.course = "C#"; student3.grade = 'A'; Console.WriteLine($"{student3.name} studies {student3.course}."); } }
Uttrycket variableName.fieldName
kan behandlas som en variabel och det är därför giltigt att använda det i strängformatering, precis som i exemplet ovan.
1. Vilket nyckelord används för att definiera en struktur?
2. Vad blir utmatningen av följande kod?
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 2.04
Definiera och Använda en Struktur
Svep för att visa menyn
Du definierar en struktur med följande syntax:
index.cs
1234567struct structureName { public datatype fieldName1; public datatype fieldName2; public datatype fieldName3; ... }
Till exempel kan du definiera en struktur för att lagra viss studentdata:
index.cs
12345678struct Student { public int id; public float age; public string name; public string course; public char grade; }
För att lagra data behöver du skapa en instans (även kallad ett objekt) med denna struktur. En struktur är i grunden en anpassad datatyp och kan därför behandlas som en sådan. För att skapa ett nytt objekt av strukturen använder du följande syntax:
index.cs
1structName variableName;
Du kan skapa flera objekt av klassen Student
, vilka alla kan lagra data:
index.cs
123Student student1; Student student2; Student student3;
Varje objekt du har skapat har de fält som definieras i strukturen Student
och du kan lagra och komma åt data från dessa fält med syntaxen variableName.fieldName
. Till exempel kan du komma åt och skriva ut fältet name
för student2
:
index.cs
1Console.WriteLine(student2.name);
När ett tomt objekt skapas får fälten nollvärden beroende på deras datatyper:
string
- tom sträng""
;char
- tom tecken''
;int
-0
;float
-0.0
;bool
-false
.
Därför kommer student2.name
att ge ett tomt resultat.
Du kan lagra data i det med tilldelningsoperatorn (=
):
index.cs
1student2.name = "Alex";
På detta sätt kan du lagra data i alla tre objekten:
index.cs
123456789101112131415161718192021222324252627282930313233343536373839using System; struct Student { public int id; public float age; public string name; public string course; public char grade; } class ConsoleApp { static void Main(string[] args) { Student student1; student1.id = 1; student1.name = "Abigail"; student1.age = 21; student1.course = "C#"; student1.grade = 'A'; Console.WriteLine($"{student1.name} is {student1.age} years old."); Student student2; student2.id = 2; student2.name = "Alex"; student2.age = 22; student2.course = "C#"; student2.grade = 'B'; Console.WriteLine($"{student2.name} has a {student2.grade} in {student2.course}."); Student student3; student3.id = 3; student3.name = "Jennifer"; student3.age = 19; student3.course = "C#"; student3.grade = 'A'; Console.WriteLine($"{student3.name} studies {student3.course}."); } }
Uttrycket variableName.fieldName
kan behandlas som en variabel och det är därför giltigt att använda det i strängformatering, precis som i exemplet ovan.
1. Vilket nyckelord används för att definiera en struktur?
2. Vad blir utmatningen av följande kod?
Tack för dina kommentarer!