22/03/2026
I C#-programmering er operatorer specielle symboler, der bruges til at udføre operationer på operander. En operand kan være en variabel og/eller en konstant. For eksempel, i udtrykket 2 + 3, er + en operator, der udfører en additionsoperation, mens 2 og 3 er operander. Operatorer er fundamentale for at manipulere variable og værdier i et program. C# understøtter et bredt udvalg af operatorer, som klassificeres baseret på den type operationer, de udfører. At forstå disse operatorer er afgørende for enhver C#-udvikler, da de danner grundlaget for logik, beregninger og datamanipulation i enhver applikation.

Grundlæggende Tildelingsoperator (=)
Den mest grundlæggende operator er tildelingsoperatoren, repræsenteret ved lighedstegnet (=). Dens funktion er at tildele værdien af operanden til højre til operanden til venstre (som oftest er en variabel). Det er den primære måde, hvorpå variable får deres værdier.
For eksempel:
double x; x = 50.05;Her tildeles den numeriske værdi 50.05 til variablen x af typen double.
Eksempel på Tildelingsoperator
using System; namespace Operator { class AssignmentOperator { public static void Main(string[] args) { int firstNumber, secondNumber; // Tildeler en konstant til en variabel firstNumber = 10; Console.WriteLine("First Number = {0}", firstNumber); // Tildeler en variabels værdi til en anden variabel secondNumber = firstNumber; Console.WriteLine("Second Number = {0}", secondNumber); } } }Når dette program køres, vil outputtet være:
First Number = 10 Second Number = 10Dette simple eksempel demonstrerer, hvordan en konstant værdi først tildeles firstNumber, og derefter kopieres denne værdi til secondNumber.
Aritmetiske Operatorer
Aritmetiske operatorer bruges til at udføre almindelige matematiske operationer såsom addition, subtraktion, multiplikation og division. Disse er blandt de mest anvendte operatorer i næsten ethvert program.
| Operator | Navn | Beskrivelse | Eksempel |
|---|---|---|---|
| + | Addition | Lægger to operander sammen | 6 + 3 evalueres til 9 |
| - | Subtraktion | Trækker den højre operand fra den venstre | 10 - 6 evalueres til 4 |
| * | Multiplikation | Ganger to operander med hinanden | 4 * 2 evalueres til 8 |
| / | Division | Dividerer den venstre operand med den højre | 10 / 5 evalueres til 2 |
| % | Modulo | Beregner resten af en division | 16 % 3 evalueres til 1 |
Eksempel på Aritmetiske Operatorer
using System; namespace Operator { class ArithmeticOperator { public static void Main(string[] args) { double firstNumber = 14.40, secondNumber = 4.60, result; int num1 = 26, num2 = 4, rem; // Additionsoperator result = firstNumber + secondNumber; Console.WriteLine("{0} + {1} = {2}", firstNumber, secondNumber, result); // Subtraktionsoperator result = firstNumber - secondNumber; Console.WriteLine("{0} - {1} = {2}", firstNumber, secondNumber, result); // Multiplikationsoperator result = firstNumber * secondNumber; Console.WriteLine("{0} * {1} = {2}", firstNumber, secondNumber, result); // Divisionsoperator result = firstNumber / secondNumber; Console.WriteLine("{0} / {1} = {2}", firstNumber, secondNumber, result); // Modulo-operator rem = num1 % num2; Console.WriteLine("{0} % {1} = {2}", num1, num2, rem); } } }Outputtet fra programmet vil være:
14.4 + 4.6 = 19 14.4 - 4.6 = 9.8 14.4 * 4.6 = 66.24 14.4 / 4.6 = 3.1304347826087 26 % 4 = 2Relationelle og Ligestillingsoperatorer
Relationelle og ligestillingsoperatorer bruges til at sammenligne to operander. Resultatet af en sådan sammenligning er altid en boolesk værdi: enten true eller false. Disse operatorer er essentielle for at træffe beslutninger og styre flowet i et program, for eksempel i if-sætninger og loops.
| Operator | Navn | Eksempel | Resultat |
|---|---|---|---|
| == | Lig med | 6 == 4 | false |
| != | Ikke lig med | 10 != 2 | true |
| > | Større end | 3 > -1 | true |
| < | Mindre end | 5 < 3 | false |
| >= | Større end eller lig med | 4 >= 4 | true |
| <= | Mindre end eller lig med | 5 <= 3 | false |
Eksempel på Relationelle Operatorer
using System; namespace Operator { class RelationalOperator { public static void Main(string[] args) { bool result; int firstNumber = 10, secondNumber = 20; result = (firstNumber == secondNumber); Console.WriteLine("{0} == {1} returnerer {2}", firstNumber, secondNumber, result); result = (firstNumber > secondNumber); Console.WriteLine("{0} > {1} returnerer {2}", firstNumber, secondNumber, result); result = (firstNumber < secondNumber); Console.WriteLine("{0} < {1} returnerer {2}", firstNumber, secondNumber, result); result = (firstNumber >= secondNumber); Console.WriteLine("{0} >= {1} returnerer {2}", firstNumber, secondNumber, result); result = (firstNumber <= secondNumber); Console.WriteLine("{0} <= {1} returnerer {2}", firstNumber, secondNumber, result); result = (firstNumber != secondNumber); Console.WriteLine("{0} != {1} returnerer {2}", firstNumber, secondNumber, result); } } }Outputtet viser resultatet af hver sammenligning:
10 == 20 returnerer False 10 > 20 returnerer False 10 < 20 returnerer True 10 >= 20 returnerer False 10 <= 20 returnerer True 10 != 20 returnerer TrueLogiske Operatorer
Logiske operatorer bruges til at udføre logiske operationer på booleske udtryk. De kombinerer to eller flere betingelser og returnerer en boolesk værdi. Disse er også centrale i beslutningstagning og kontrolstrukturer.

| Operand 1 | Operand 2 | OR (||) | AND (&&) |
|---|---|---|---|
| true | true | true | true |
| true | false | true | false |
| false | true | true | false |
| false | false | false | false |
Kort sagt: || (OR) returnerer true, hvis mindst én af operanderne er true. && (AND) returnerer kun true, hvis begge operander er true. Der findes også ! (NOT), som inverterer en boolesk værdi.
Eksempel på Logiske Operatorer
using System; namespace Operator { class LogicalOperator { public static void Main(string[] args) { bool result; int firstNumber = 10, secondNumber = 20; // OR operator result = (firstNumber == secondNumber) || (firstNumber > 5); Console.WriteLine(result); // AND operator result = (firstNumber == secondNumber) && (firstNumber > 5); Console.WriteLine(result); } } }Outputtet bliver:
True FalseI det første tilfælde er (firstNumber > 5) sandt, så hele udtrykket bliver sandt. I det andet tilfælde er (firstNumber == secondNumber) falsk, så hele udtrykket bliver falsk.
Unære Operatorer
I modsætning til de fleste andre operatorer, arbejder unære operatorer kun på en enkelt operand. De bruges til at inkrementere, dekrementere, invertere fortegn eller negere en boolesk værdi.
| Operator | Navn | Beskrivelse |
|---|---|---|
| + | Unær Plus | Ændrer ikke operandens fortegn |
| - | Unær Minus | Inverterer operandens fortegn |
| ++ | Inkrement | Øger værdien med 1 |
| -- | Dekrement | Mindsker værdien med 1 |
| ! | Logisk NOT | Inverterer en boolesk værdi |
Prefix vs. Postfix Inkrement/Dekrement
Inkrement (++) og dekrement (--) operatorerne kan bruges både som prefix (før operanden, f.eks. ++number) og postfix (efter operanden, f.eks. number++). Forskellen ligger i, hvornår værdien opdateres i forhold til, hvornår udtrykket evalueres.
- Prefix: Værdien ændres først, og derefter evalueres udtrykket med den nye værdi.
- Postfix: Udtrykket evalueres først med den oprindelige værdi, og derefter ændres værdien.
Eksempel på Prefix og Postfix
using System; namespace Operator { class UnaryOperator { public static void Main(string[] args) { int number = 10; Console.WriteLine((number++)); // Postfix: Printer 10, derefter bliver number 11 Console.WriteLine((number)); // Printer 11 Console.WriteLine((++number)); // Prefix: number bliver 12, derefter printes 12 Console.WriteLine((number)); // Printer 12 } } }Outputtet illustrerer forskellen tydeligt:
10 11 12 12Den Ternære Operator (?:)
Den ternære operator, også kendt som den betingede operator, er en kompakt erstatning for en if-else-sætning. Den arbejder på tre operander.
Syntaksen er: betingelse ? udtryk1: udtryk2;
Sådan virker den:
- Hvis
betingelseevalueres tiltrue, udføresudtryk1, og dens resultat returneres. - Hvis
betingelseevalueres tilfalse, udføresudtryk2, og dens resultat returneres.
Eksempel på Ternær Operator
using System; namespace Operator { class TernaryOperator { public static void Main(string[] args) { int number = 10; string result; result = (number % 2 == 0) ? "Lige Tal": "Ulige Tal"; Console.WriteLine("{0} er {1}", number, result); } } }Output:
10 er Lige TalBitwise og Bit Shift Operatorer
Disse operatorer bruges til at udføre operationer direkte på de binære bits, som en værdi består af. De bruges ofte i lavniveausprogrammering, f.eks. til drivere eller i situationer, hvor ydeevne er kritisk.

| Operator | Navn |
|---|---|
| ~ | Bitwise Complement |
| & | Bitwise AND |
| | | Bitwise OR |
| ^ | Bitwise Exclusive OR (XOR) |
| << | Bitwise Left Shift |
| >> | Bitwise Right Shift |
Sammensatte Tildelingsoperatorer
Sammensatte tildelingsoperatorer er en genvej til at udføre en operation og tildele resultatet tilbage til den samme variabel. For eksempel er x += 5; en kortere måde at skrive x = x + 5; på.
| Operator | Eksempel | Ækvivalent med |
|---|---|---|
| += | x += 5 | x = x + 5 |
| -= | x -= 5 | x = x - 5 |
| *= | x *= 5 | x = x * 5 |
| /= | x /= 5 | x = x / 5 |
| %= | x %= 5 | x = x % 5 |
| &= | x &= 5 | x = x & 5 |
| |= | x |= 5 | x = x | 5 |
| ^= | x ^= 5 | x = x ^ 5 |
| <<= | x <<= 2 | x = x << 2 |
| >>= | x >>= 2 | x = x >> 2 |
Operatorforrang
Når et udtryk indeholder flere operatorer, bestemmer reglerne for operatorforrang (operator precedence), hvilken rækkefølge operationerne udføres i. For eksempel udføres multiplikation og division før addition og subtraktion. Man kan bruge parenteser () til at overstyre den normale forrang og tvinge en bestemt evalueringsrækkefølge.
Eksempel på Forrang
int a = 5 + 3 * 2; // Evalueres som 5 + (3 * 2) = 11 int b = (5 + 3) * 2; // Evalueres som 8 * 2 = 16Ofte Stillede Spørgsmål (FAQ)
Hvad er forskellen på tildelingsoperatoren (=) og ligestillingsoperatoren (==)?
Dette er en almindelig kilde til fejl for nye programmører. Tildelingsoperatoren (=) bruges til at tildele en værdi til en variabel. Ligestillingsoperatoren (==) bruges til at sammenligne to værdier for at se, om de er ens, og den returnerer true eller false.
Hvad betyder operatorforrang, og hvorfor er det vigtigt?
Operatorforrang er det sæt af regler, der dikterer den rækkefølge, hvori operatorer evalueres i et komplekst udtryk. Det er vigtigt for at sikre, at udtryk evalueres som forventet og for at undgå logiske fejl. For eksempel sikrer forrang, at 5 + 3 * 2 altid giver 11 og ikke 16.
Hvornår er den ternære operator nyttig?
Den ternære operator er nyttig til korte, koncise betingede tildelinger. Den kan gøre koden mere læsbar end en fuld if-else-blok, når logikken er simpel. For eksempel er string type = score > 50 ? "Bestået": "Ikke bestået"; mere kompakt end den tilsvarende if-else-struktur.
Hvad er forskellen på den logiske AND (&&) og bitwise AND (&)?
Den logiske AND (&&) arbejder med booleske værdier og er "short-circuiting". Det betyder, at hvis den første operand er false, evalueres den anden operand slet ikke. Bitwise AND (&) arbejder på de individuelle bits i numeriske typer og evaluerer altid begge operander. Den kan også bruges på booleske værdier, men uden short-circuiting.
Hvis du vil læse andre artikler, der ligner Operatorer i C#: En Komplet Guide, kan du besøge kategorien Sundhed.
