int age = 17;
double price = 24.95;
string name = "Anna";
bool isReady = true;
char grade = 'A';
age = 18;
price = price * 1.25;
=
Tildeling: gem værdien fra højresiden i variablen på venstresiden. Højresiden
beregnes først. age = 18 betyder altså ikke "er lig med", men "gem 18 i
age".
Erklæring: angiver en variabels type og reserverer plads i hukommelsen.
En erklæring og en tildeling kan stå sammen: int age = 17.
Console.Write("Navn: ");
string name = Console.ReadLine();
Console.WriteLine("Hej " + name);
Console.Write("Alder: ");
int age = int.Parse(Console.ReadLine());
double number =
double.Parse(Console.ReadLine());
if (int.TryParse(Console.ReadLine(), out int parsedNumber))
{
Console.WriteLine("Tallet er " + parsedNumber);
}
TryParse() forsøger at omdanne tekst og returnerer false, hvis det
ikke lykkes.
string firstName = "Anna";
string lastName = "Jensen";
int age = 17;
// 1. Konkatenering: sæt strings sammen med +
string withPlus = "Hej " + firstName + " " + lastName;
// 2. Interpolation: indsæt værdier direkte med { }
string withInterpolation = $"Hej {firstName} {lastName}, du er {age} år";
// 3. string.Format: pladsholdere starter ved {0}
string withFormat = string.Format(
"Hej {0} {1}, du er {2} år", firstName, lastName, age);
// 4. @-notation: backslash er almindelig tekst
string path = @"C:\Users\Anna\Documents";
string quote = @"Hun sagde: ""Hej"".";
+ er fint til få dele. Brug normalt interpolation, når værdier skal ind i en
tekst. string.Format er nyttig, når formatet ligger separat eller skal genbruges.
I en @"..."-string skrives \ uden ekstra escape. Et dobbelt
citationstegn skrives som "". Kombinationen $@"C:\Users\{firstName}" giver
både interpolation og verbatim notation.
string text = " C# er sjovt ";
string clean = text.Trim(); // "C# er sjovt"
int length = clean.Length; // 11
bool found = clean.Contains("sjovt"); // true
string changed = clean.Replace("sjovt", "fedt");
string beginning = clean.Substring(0, 2); // "C#"
string upper = clean.ToUpper(); // "C# ER SJOVT"
Strings er uforanderlige: text.Trim() og text.Replace(...) ændrer
ikke text. Gem resultatet i en variabel, hvis du vil bruge den ændrede tekst.
+addition / tekstsammensætning (konkatenering)
-subtraktion
*multiplikation
/division – med int kasseres resten
%rest ved division (modulo)
++læg 1 til
--træk 1 fra
+=læg til og gem, fx age += 1
-=træk fra og gem
*=gang med og gem
/=divider med og gem
%=beregn rest og gem
int whole = 11 / 2; // 5 – heltalsdivision
double exact = 11.0 / 2; // 5.5 – mindst ét tal er double
int result = 7 % 3; // 1 – resten efter division
age++;
price = price * 1.10;
Vigtigt: C# regner *, / og % før + og
-. Brug parenteser, hvis rækkefølgen skal være tydelig: (2 + 3) * 4.
Vigtigt: age++ og ++age lægger begge 1 til. I et større udtryk bruges den
gamle værdi ved postfix (age++) og den nye værdi ved prefix (++age).
==lig med
!=forskellig fra
<mindre end
>større end
<=mindre end eller lig med
>=større end eller lig med
&&OG
||ELLER
^eksklusiv OR (XOR)
!IKKE
if (age >= 18)
{
Console.WriteLine("Voksen");
}
if (age >= 18)
{
Console.WriteLine("Voksen");
}
else
{
Console.WriteLine("Ikke voksen");
}
if (score >= 90)
{
grade = "A";
}
else if (score >= 80)
{
grade = "B";
}
else
{
grade = "C";
}
string status = age >= 18
? "Voksen"
: "Ikke voksen";
Form: betingelse ? værdi_hvis_sand : værdi_hvis_falsk.
switch (choice)
{
case 1:
case 2:
Console.WriteLine("Start");
break;
case 3:
Console.WriteLine("Stop");
break;
default:
Console.WriteLine("Ugyldigt valg");
break;
}
break afslutter den aktuelle case. default bruges, hvis ingen case passer.
int count = 1;
while (count <= 5)
{
Console.WriteLine(count);
count++;
}
Betingelsen testes før hver gennemløb.
int number;
do
{
Console.Write("Tal: ");
number = int.Parse(Console.ReadLine());
}
while (number < 1);
Blokken udføres mindst én gang. Betingelsen testes efter gennemløbet.
for (int i = 0; i < 10; i++)
{
Console.WriteLine(i);
}
Form: for (start; betingelse; ændring)
for (int i = 10; i >= 0; i--)
{
Console.WriteLine(i);
}
string[] names =
{ "Anna", "Bo", "Clara" };
foreach (string name in names)
{
Console.WriteLine(name);
}
foreach gennemløber hvert element i en samling én gang.
int[] numbers = { 10, 20, 30, 40 };
Console.WriteLine(numbers[0]); // 10
numbers[1] = 25;
Console.WriteLine(numbers.Length);
Indeks starter ved 0. Sidste indeks er Length - 1.
for (int i = 0; i < 10; i++)
{
if (i == 5)
break; // stop løkken
if (i % 2 == 0)
continue; // spring resten over
Console.WriteLine(i);
}
int heltal
double decimaltal
string tekst
char ét tegn
bool true / false
; afslutter en sætning
{ ... } blok
// kommentar