Følgende side hænger sammen med følgende GitHub repo - https://github.com/Mercantec-GHC/CSharpBogen
Der er flere visuelle eksempler på følgende PowerPoint slides - https://edumercantec-my.sharepoint.com/:p:/g/personal/mags_edu_mercantec_dk/Eara87TMCAdLtewalPesm34Bp4bKxOnZwQHoolmqFznETQ?e=bQfV1d
Vi har en standart konsol app i C#, vi skal starte med at forstå programmet før vi kan skrive i det!
namespace FirstProgram
{
public class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hej og velkommen til C#-bogen!");
}
}
}
Først skal vi lige decode alle kodeordene som starter vores kode
1. namespace
Officiel Dokumentation - Namespaces
Et namespace er brugt til at organisere jeres kode og separerer det. Det er i toppen af stort set alle jeres filer og kan indeholde klasser som vi lærer om senere og kan faktisk også indeholde nestet namespaces!
2. Tuborg-klammer / curly braces -> {}
Officiel Dokumentation - Formatting
I kender nok "{}" fra andre sprog, nogle få bruger dem ikke normalt såsom Python. De definere hvornår jeres namespace, metode eller funktion starter og stopper.
3. public
Officiel Dokumentation - public
Public betyder at den efterfølgende klasse eller variabel er offentlig tilgængelig. Altså at den kan tilgås uden for dens egen klasse eller namespace. Vi dækker emnet omkring Public, Private osv. senere i forløbet!
4. class
class er også et keyword som vi stifter meget mere bekendtskab med senere i forløbet. Vi har dedikeret en hel uge til OOP (Object Orienteret Programmering), så der skal vi nok få dækket det. Generelt bruger vi klasser til at holde på variabler (Attributes) og metoder, vi snakker i kapitel 8 omkring objekter som hænger tæt sammen med klasser!
5. static
vores Main metode skal altid have static kodeordet, det gør at vi kan kalde metoden uden at lave en instans af klassen. Vi kommer ikke rigtig til at bruge kodeordet senere, så I behøver ikke dyb viden omkring det!
6. void
void betyder at vores metode ikke retunere noget, hvis vi i løbet af metoden bruger kodeordet "return" er det vigtigt at skrive præcis hvilken type vi retunere i stedet for "void". Vi kommer til at bruge den her funktionalitet meget, senere i vores forløb og der kommer det til at give meget mere mening!
7. Main(string[] args)
Main() er vores hovedmetode, det betyder at når vi starter programmet ser den automatisk efter en Main()-metode som starter vores program. Senere når vi har større projekter, bruger vi en fil kaldet program.cs til at gøre præcis det samme!
8. Console
Console er en del af "System" pakken, det gør at vi har et sted at skrive tekst til. Udover det kan de også tage input som vi ser senere!
Microsoft dokumentation kan findes her - Variabler
Variabler i C# er brugt til at gemme og manipulere data. En variabel kan være en bestemt type, f.eks. en heltal, en flydende kommatal, en streng eller en boolsk værdi.
For at erklære en variabel i C#, skal du angive dens type og give den et navn. For eksempel kan du erklære en variabel af typen int
(heltal) ved at skrive:
int nummer;
Her har vi erklæret en variabel ved navn nummer
af typen int
. Du kan også initialisere variablen med en startværdi ved at tildele den en værdi. For eksempel:
int alder = 25;
Her har vi erklæret og initialiseret en variabel ved navn alder
af typen int
med værdien 25.
Når variablen erklæres, kan du til enhver tid tildele en ny værdi til den. For eksempel:
alder = 30;
Du kan også kombinere variabler og udføre operationer med dem. For eksempel:
int x = 5;
int y = 10;
int sum = x + y;
Her har vi erklæret tre variabler, x
, y
og sum
, og udført en addition mellem x
og y
og gemt resultatet i sum
.
Variabler kan også have forskellige scopes, hvilket betyder, at de kun er synlige og tilgængelige inden for visse områder af din kode. For eksempel kan du erklære en variabel inden for en metode, og den vil kun være synlig inden for den metode.
Det er vigtigt at forstå, hvordan man arbejder med variabler i C#, da de er fundamentale for at gemme og manipulere data i programmeringssprog.
Her er en liste over de enkelte primitive typer af variabler i C#:
Keyword | Aliased type | Formål |
---|---|---|
sbyte |
System.SByte | Værdier fra -128 t.o.m. 127 – 8-bit signed |
byte |
System.Byte | Værdier fra 0 til og med 255 – 8-bit unsigned |
short |
System.Int16 | Værdier fra -32768 til 32767 – 16-bit signed |
ushort |
System.UInt16 | Værdier fra 0 til 65535 – 16-bit unsigned |
int |
System.Int32 | Værdier fra -2147483648 til 2147483648 – 32-bit signed |
uint |
System.UInt32 | Værdier fra 0 til 4294967295 – 32-bit signed |
long |
System.Int64 | Værdier fra -9.223.372.036.854.775.808 til 9.223.372.036.854.775.808 – 64-bit signed |
ulong |
System.UInt64 | Værdier fra 0 til 18.446.744.073.709.551.615 |
char |
System.Char | Værdier fra 0 til 65535 – 16-bit unsigned |
float |
System.Single | Værdier fra 1.5 × 10⁻⁴⁵ til 3.4 × 10³⁸ med precision af 7 decimaler. |
double |
System.Double | Værdier fra 5.0 × 10⁻³²⁴ til 1.7 × 10³⁰⁸ med precision af 15-16 decimaler. |
bool |
System.Boolean | Værdier fra 0 til 1 – hvor 0 er False og 1 er True |
decimal |
System.Decimal | Værdier fra -7.9 × 10⁻²⁸ til 7.9 × 10²⁸, med precision af 28 decimaler. |
Strenge (strings) er en grundlæggende datatype i C#, som bruges til at repræsentere tekst. En streng er en sekvens af tegn og kan indeholde bogstaver, tal, symboler og mellemrum. I C# er strenge immutables, hvilket betyder, at deres værdi ikke kan ændres efter oprettelsen. Hvis du ændrer en streng, oprettes der en ny streng i hukommelsen.
Oprettelse af Strenge
Der er flere måder at oprette og initialisere strenge i C#:
Direkte Initialisering
string greeting = "Hello, World!";
Brug af String Konstruktor
char[] characters = { 'H', 'e', 'l', 'l', 'o' };
string greeting = new string(characters);
Strengeegenskaber og Metoder
Strenge har mange indbyggede egenskaber og metoder, som gør det nemt at arbejde med tekstdata.
Længde
For at få længden af en streng kan du bruge Length
-egenskaben:
string greeting = "Hello, World!";
int length = greeting.Length; // 13
Tilgå Tegn
Du kan tilgå individuelle tegn i en streng ved hjælp af indeks:
char firstChar = greeting[0]; // 'H'
char lastChar = greeting[greeting.Length - 1]; // '!'
Sammenkædning af Strenge
Du kan sammenkæde (konkatenere) strenge ved hjælp af +
-operatoren eller String.Concat
-metoden:
string firstName = "John";
string lastName = "Doe";
string fullName = firstName + " " + lastName; // "John Doe"
// Alternativt
string fullName = String.Concat(firstName, " ", lastName);
Formatering af Strenge
Du kan formatere strenge ved hjælp af String.Format
-metoden eller interpolerede strenge (tilføjet i C# 6.0):
String.Format
int age = 30;
string message = String.Format("You are {0} years old.", age);
// "You are 30 years old."
Interpolerede Strenge med $
Personligt er det her min fortrukne måde at indsætte variabler ind en streng!
int age = 30;
string message = $"You are {age} years old."; // "You are 30 years old."
Flere linjer med @””
string message = @"Jeg er en utrolig lang streng, som fylder alt for meget!
Heldigvis kan jeg skrives på flere linjer!"
Du kan splitte en streng i et array af understrenge ved hjælp af Split
-metoden:
string sentence = "The quick brown fox";
string[] words = sentence.Split(' '); // { "The", "quick", "brown", "fox" }
Du kan sammenføje et array af strenge til en enkelt streng ved hjælp af Join
-metoden:
Introduktion
Kodestandarter sikrer konsistens, læsbarhed og vedligeholdelighed i softwareprojekter. Dette kapitel gennemgår vigtige principper for at skrive klar og effektiv C#-kode, herunder navngivning, formatering, og anvendelse af metoder og klasser.