Getting Started
Præsenter som slidesLæringsmål
- Kan installere Visual Studio, GitHub Desktop og VS Code
- Kan oprette et GitHub-konto og klone GF2-CSharp repoet
- Kan oprette et simpelt C# konsolprojekt
- Kan forklare strukturen i et standard C# konsolprogram (namespace, class, Main)
Kom i gang
Velkommen til GF2 Programmering. Du lærer C# og Git i studiegrupper — med opgaver, projekter og pensum du kan arbejde dig igennem i dit eget tempo.
Installation og værktøjer
Som udvikler bruger du flere værktøjer, der hver især løser en bestemt opgave. Visual Studio er din primære IDE (Integrated Development Environment) til C# — her skriver, kører og debugger du kode. GitHub Desktop giver dig et grafisk interface til Git, så du kan committe og pushe uden at huske alle kommandoer. VS Code er en let editor, der er praktisk til scripts, markdown og hurtige ændringer.
Hent disse værktøjer inden første undervisningsdag:
- Visual Studio — primær IDE til C#
- GitHub Desktop — nem Git-klient
- VS Code — let editor til scripts og markdown
- .NET SDK — følger typisk med Visual Studio
Opret en konto på GitHub hvis du ikke har en. GitHub er en cloud-tjeneste, hvor du gemmer og deler din kode — tænk på det som Google Drive, men til programmeringsprojekter.
Videoer
Se det i praksis
What is C#? [Pt 1] | C# for Beginners
Hello World! [Pt 2] | C# for Beginners
Basics of VS Code and the C# DevKit [Pt 3] | C# for Beginners
GitHub og kursus-repoet
GitHub er verdens største platform til versionsstyring af kode. Når du kloner et repository, kopierer du hele projektet ned på din egen computer — så du kan arbejde lokalt og synce ændringer tilbage.
Klon kursus-repoet — her ligger opgaver og projekter:
github.com/Mercantech/GF2-CSharp
I GitHub Desktop: File → Clone repository → vælg URL'en ovenfor. Nu har du en lokal kopi, du kan åbne i Visual Studio.
Pensum er designet til begyndere. Har du erfaring, kan du arbejde forud — der er ekstra projekter at tage fat i.
Opgaverne kan løses med AI i én prompt. Brug ikke AI til at løse opgaverne for dig — men det er fint at bruge AI til at forstå pensum bedre.
Dit første C# konsolprojekt
Et konsolprogram kører i en terminal og skriver tekst — perfekt til at lære grundlæggende C# uden at tænke på grafik.
Sådan opretter du et projekt i Visual Studio:
- Create a new project → vælg Console App (C#)
- Giv projektet et navn, fx
MitFoersteProjekt - Gennemgå
Program.cs— det er her din kode lever - Tryk F5 for at køre
Nyere C#-projekter kan bruge top-level statements (kode uden class og Main). Det er kortere, men den klassiske struktur nedenfor hjælper dig med at forstå, hvad der sker under overfladen.
Anatomi af et C#-program — Main(string[] args)
En standard konsolapp i C# har en fast struktur. Du skal forstå programmet, før du kan skrive i det!
namespace FirstProgram
{
public class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hej og velkommen til C#-bogen!");
}
}
}
Her er kodeordene, der starter programmet, forklaret ét ad gangen:
namespace
Et namespace organiserer din kode og adskiller den fra andre dele af programmet. Det står i toppen af stort set alle filer og kan indeholde klasser — og endda indlejrede namespaces.
Tuborg-klammer - { }
Du kender sikkert { og } fra andre sprog (Python bruger dem normalt ikke). Klammerne definerer, hvor et namespace, en klasse eller en metode starter og stopper.
public
public betyder, at den efterfølgende klasse eller variabel er offentligt tilgængelig — altså at den kan bruges uden for sin egen klasse eller namespace. Emner som public, private og protected dækker vi senere i forløbet.
class
class er et nøgleord, du lærer meget mere om i OOP-kapitlet. Klasser bruges til at holde variabler (attributter) og metoder. Objekter hænger tæt sammen med klasser — det kommer vi tilbage til der.
static
Main-metoden skal altid være static. Det betyder, at metoden kan kaldes uden at oprette en instans af klassen. Du behøver ikke dyb viden om static lige nu — det bliver tydeligere, når vi arbejder med objekter.
void
void betyder, at metoden ikke returnerer noget. Hvis en metode skal sende et resultat tilbage, erstatter du void med den rette type — fx int eller string. Det bruger vi meget senere i kurset.
Main(string[] args)
Main() er indgangspunktet til programmet. Når du starter appen, leder runtime efter en Main-metode og begynder der. I større projekter ligger det ofte i en fil kaldet Program.cs — præcis det samme princip.
string[] args er kommandolinjeargumenter (input fra terminalen). args er den gængse engelske forkortelse for arguments. Dem bruger vi sjældent i starten, men de er en del af signaturen.
Vi bruger engelske navne til variabler og parametre gennem hele pensum — også når forklaringen og programmets output er på dansk. Det gør koden lettere at dele og holder den på linje med C#-dokumentation og almindelig best practice.
Console
Console er en del af System-biblioteket. Den giver dig et sted at skrive tekst til (og senere læse input fra) konsollen.
WriteLine er den du bruger mest i starten.
Versionsstyring fra dag ét
Selv som begynder bør du vænne dig til at gemme din kode med Git. Hver gang du har lavet en logisk ændring, laver du en commit — et snapshot af din kode på det tidspunkt.
En god commit-besked forklarer hvad du har ændret: "init: opret GF2 projekt" er bedre end "fix" eller "asdf". Du lærer mere om Git i senere pensum-emner.
Git-trin
- Branch:
main - Commit:
init: opret GF2 projekt
Opret et GitHub-repo og push dit projekt efter første commit.
Sådan arbejder du med pensum
Pensum er opdelt i kapitler, der følger undervisningen. Hvert kapitel har kompetencemål — det er det, du skal kunne, når du er færdig. Brug dem som tjekliste.
Du kan arbejde på to måder. Begge følger det samme pensum og træner de samme kompetencer — forskellen er, om koden kører på GF2 Learn eller på din egen computer.
Spor A — Brug GF2 Learn og den indbyggede IDE
Dette er den nemmeste måde at komme i gang på. Du behøver ikke installere noget, og du kan skrive og køre C# direkte i browseren.
- Læs kapitlet og gennemgå kodeeksemplerne.
- Åbn de tilhørende Exercises.
- Skriv din løsning efter
// TODOi den indbyggede editor. - Tryk Kør eller brug
Ctrl+Enterfor at teste koden. - Brug output og fejlbeskeder til at rette løsningen.
- Besvar kapitlets quizspørgsmål og brug kompetencemålene som tjekliste.
Er du logget ind, kan du også gemme løsninger med Gem løsning eller Ctrl+S.
Start her, hvis du er ny. Den indbyggede IDE fjerner arbejdet med installation og projektfiler, så du kan koncentrere dig om at lære C#.
Spor B — Arbejd lokalt på din egen PC
Dette spor er til dig, der er færdig med dagens opgaver, er foran pensum eller er klar til en mere realistisk udviklerarbejdsgang.
- Følg guiden Lokal udvikling og installér .NET SDK.
- Vælg VS Code med C# Dev Kit eller Visual Studio.
- Opret et lokalt C#-konsolprojekt.
- Genskab kapitlets kodeeksempler og opgaveløsninger i projektet.
- Kør koden, sæt breakpoints og undersøg variabler med debuggeren.
- Gem ændringerne med Git og skriv tydelige commit-beskeder.
Lokalt arbejder du med rigtige .cs- og .csproj-filer. Det kræver lidt mere opsætning, men giver dig erfaring med den arbejdsgang, du møder på en arbejdsplads.
Du behøver ikke vælge ét spor for resten af forløbet. Du kan løse en opgave på GF2 Learn først og bagefter genskabe den lokalt som ekstra træning.
Studiegrupper er til at diskutere og hjælpe hinanden — ikke til at kopiere løsninger. Det er helt normalt at sidde fast; det er en del af at lære programmering.
Test din viden
Spørgsmål 1
Hvad er indgangspunktet i et standard C# konsolprogram?
Når programmet starter, leder runtime efter en Main-metode og begynder der. Det er derfor Main kaldes indgangspunktet — resten af koden kører, fordi Main kalder den.
Spørgsmål 2
Hvad betyder void i signaturen static void Main(string[] args)?
void betyder, at metoden ikke sender en værdi tilbage. Hvis den skulle returnere fx et tal, ville returtypen være int i stedet for void.
Spørgsmål 3
Hvad er forskellen på Console.WriteLine og Console.Write?
WriteLine afslutter outputtet med et linjeskift. Write skriver teksten og bliver på samme linje — begge kan bruges med forskellige datatyper via konvertering.
Spørgsmål 4
Hvad gør et namespace i C#?
Et namespace grupperer relateret kode (klasser, metoder) og hjælper med at undgå navnekonflikter. Det er ikke det samme som en klasse — en namespace kan indeholde mange klasser.
Spørgsmål 5
Hvad er formålet med en Git commit?
En commit er et snapshot af projektet med en besked om, hvad der blev ændret. Det gør det muligt at gå tilbage i historikken og se præcis, hvad der skete hvornår.
Spørgsmål 6
Hvilket værktøj er den primære IDE til C#-udvikling i GF2?
Visual Studio er den fulde IDE til C# — her opretter, kører og debugger du projekter. VS Code er en let editor til scripts og markdown. GitHub Desktop håndterer Git, ikke selve kodningen.
Spørgsmål 7
Hvad betyder static på Main-metoden?
static betyder, at metoden hører til klassen selv — ikke til et specifikt objekt. Derfor kan runtime kalde Main direkte uden new Program().