C# variabler & Operators med Eksempel

โšก Smart opsummering

C#-variabler navngiver lagersteder, der indeholder typebestemte vรฆrdier, mens operatorer udfรธrer handlinger som aritmetik, sammenligning og logik pรฅ disse vรฆrdier. Sammen danner de grundlaget for ethvert udtryk og enhver beregning, som et C#-program udfรธrer.

  • ๐Ÿ“ฆ Variabler: En variabel er et navngivet lagringsomrรฅde, hvis datatype fastlรฆgger stรธrrelsen, layoutet og de gyldige operationer for dens vรฆrdi.
  • ๐Ÿ”ค Erklรฆring: Deklarering af en streng og en Int32 viser, hvordan C# indeholder tekst og hele tal, og derefter udskriver dem med Console.Write.
  • โž— Operator-grupper: Aritmetiske, relationelle og logiske operatorer dรฆkker matematik, sammenligninger og boolske kontroller, der driver programbeslutninger.
  • ๐Ÿงฎ Tildeling og bitvis: Sammensatte operatorer som plus-lig med forkorter opdateringer, mens bitvise operatorer arbejder pรฅ de individuelle bits af heltalsvรฆrdier.
  • ๐Ÿ”ข Prรฆcedence: OperaTor-prรฆcedens og associativitet bestemmer rรฆkkefรธlgen, hvori C# evaluerer delene af et komplekst udtryk.
  • ๐Ÿค– AI assistance: GitHub Copilot og ML.NET hjรฆlper med at generere variabeldeklarationer, operatorlogik og kortvรฆrdier i maskinlรฆringsfunktioner.

C# Variabler og Operatorer

C# variabler

En variabel er et navn givet til et lageromrรฅde, der bruges til at gemme vรฆrdier af forskellige datatyper. Hver variabel i C# skal have en bestemt type, som bestemmer stรธrrelsen og layoutet af variablens hukommelse.

For eksempel kan en variabel vรฆre af typen String, hvilket betyder, at den vil blive brugt til at gemme en strengvรฆrdi. Baseret pรฅ datatypen kan specifikke operationer udfรธres pรฅ variablen.

Hvis vi for eksempel havde en heltalsvariabel, sรฅ ville operationer som addition og subtraktiontrackan udfรธres pรฅ variablen. Man kan deklarere flere variabler i et program.

Lad os se pรฅ et hurtigt eksempel pรฅ erklรฆringen af โ€‹โ€‹flere variabler af forskellige datatyper.

I vores eksempel vil vi definere to variable, den ene af typen 'streng' og den anden af โ€‹โ€‹typen 'Integer'. Vi vil derefter vise vรฆrdierne af disse variable til konsollen. For hvert eksempel vil vi kun รฆndre hovedfunktionen i vores Program.cs-fil.

C# variabler

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program 
 {
  static void Main(string[] args) 
  {
   String message="The value is ";
   Int32 val=30;
   
   Console.Write(message+val);
   Console.ReadKey();
  }
 }
}

Code Forklaring:-

  1. En variabel af datatypen String erklรฆres. Navnet pรฅ variablen er 'besked'. Vรฆrdien af โ€‹โ€‹variablen er "Vรฆrdien er".
  2. En variabel af datatypen Integer (Int32) erklรฆres. Navnet pรฅ variablen er 'val'. Vรฆrdien af โ€‹โ€‹variablen er 30.
  3. Endelig bruges Console.write-sรฆtningen til at udlรฆse bรฅde vรฆrdien af โ€‹โ€‹String- og Integer-variablen.

Hvis ovenstรฅende kode er indtastet korrekt, og programmet udfรธres korrekt, vil fรธlgende output blive vist.

Output:

C# variabler

Fra outputtet kan du se, at vรฆrdierne for bรฅde strengen og heltalsvariablen vises pรฅ konsollen.

Nu hvor variabler kan indeholde vรฆrdier, er det nรฆste skridt at handle pรฅ disse vรฆrdier. OperaTorer bruges til at udfรธre operationer pรฅ vรฆrdier af forskellige datatyper. For eksempel, for at udfรธre addition af 2 tal, bruges +-operatoren.

Lad os se tabellen over tilgรฆngelige operatรธrer for de forskellige datatyper.

C# Operatorer

Aritmetik Operatorer

Disse er operatorer, der bruges til at udfรธre matematiske operationer pรฅ tal. Nedenfor er en liste over operatorer, der er tilgรฆngelige i C#.

OperaTor Beskrivelse
+ Tilfรธjer to operander
- Undertracts den anden operand fra den fรธrste
* Multipliserer begge operander
/ Dividerer tรฆlleren med de-tรฆller
% modulus Operator og en rest af efter en heltalsdeling
++ Inkrementoperator รธger heltalsvรฆrdien med รฉn
โ€” Decrement operator reducerer heltalsvรฆrdien med รฉn

Relationel Operatorer

Disse er operatorer, der bruges til at udfรธre relationelle operationer pรฅ tal. Nedenfor er listen over relationelle operatorer tilgรฆngelige i C#.

OperaTor Beskrivelse
== Kontrollerer, om vรฆrdierne af to operander er ens eller ej, hvis ja, bliver betingelsen sand.
!= Kontrollerer, om vรฆrdierne af to operander er ens eller ej, hvis vรฆrdierne ikke er ens, bliver betingelsen sand.
> Kontrollerer, om vรฆrdien af โ€‹โ€‹venstre operand er stรธrre end vรฆrdien af โ€‹โ€‹hรธjre operand, hvis ja, bliver betingelsen sand.
< Kontrollerer, om vรฆrdien af โ€‹โ€‹venstre operand er mindre end vรฆrdien af โ€‹โ€‹hรธjre operand, hvis ja, bliver betingelsen sand.
>= Kontrollerer, om vรฆrdien af โ€‹โ€‹venstre operand er stรธrre end eller lig med vรฆrdien af โ€‹โ€‹hรธjre operand, hvis ja, bliver betingelsen sand.
<= Kontrollerer, om vรฆrdien af โ€‹โ€‹venstre operand er mindre end eller lig med vรฆrdien af โ€‹โ€‹hรธjre operand, hvis ja, bliver betingelsen sand.

Logisk Operatorer

Disse er operatorer, der bruges til at udfรธre logiske operationer pรฅ vรฆrdier. Nedenfor er listen over tilgรฆngelige operatรธrer i C#.

OperaTor Beskrivelse
&& Dette er den logiske OG-operator. Hvis begge operanderne er sande, bliver betingelsen sand.
|| Dette er den logiske ELLER-operator. Hvis nogen af โ€‹โ€‹operanderne er sande, bliver betingelsen sand.
! Dette er den logiske IKKE-operator.

Lad os se pรฅ et hurtigt eksempel pรฅ, hvordan operatorerne kan bruges i .NET.

I vores eksempel definerer vi 2 heltalsvariabler og รฉn boolsk variabel. Vi udfรธrer derefter aritmetiske, relationelle og logiske operationer pรฅ dem.

C# Operatorer

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program 
 {
  static void Main(string[] args) 
  {
   Int32 val1 = 10,val2 = 20;
   bool status = true;
   
   Console.WriteLine(val1 + val2);
   Console.WriteLine(val1 < val2);
   Console.WriteLine(!(status));
   Console.ReadKey();
  }
 }
}

Code Forklaring:-

  1. To heltalsvariabler er defineret, den ene er val1 og den anden er val2. Disse vil blive brugt til at vise relationelle og aritmetiske operationer. En boolsk variabel er defineret for at vise logiske operationer.
  2. Et eksempel pรฅ den aritmetiske operation er vist, hvor additionsoperatoren udfรธres pรฅ val1 og val2. Resultatet skrives til konsollen.
  3. Et eksempel pรฅ den relationelle operation er vist, hvor mindre end-operatoren udfรธres pรฅ val1 og val2. Resultatet skrives til konsollen.
  4. Et eksempel pรฅ den logiske operation er vist, hvor den logiske operator (!) anvendes pรฅ statusvariablen. Den logiske NOT-operator vender den aktuelle vรฆrdi af enhver boolsk vรฆrdi. Sรฅ hvis en boolsk vรฆrdi er 'sand', vil den logiske NOT returnere vรฆrdien 'false' og omvendt. I vores tilfรฆlde, da vรฆrdien af โ€‹โ€‹statusvariablen er 'sand', vil resultatet vise 'false'. Resultatet skrives til konsollen.

Hvis ovenstรฅende kode er indtastet korrekt, og programmet afvikles korrekt, vil outputtet blive vist.

Output:

C# Operatorer

C#-opgave Operatorer

Tildelingsoperatorer gemmer resultatet af et udtryk i en variabel. Den grundlรฆggende tildelingsoperator er det enkelte lighedstegn, og C# tilbyder ogsรฅ sammensatte operatorer, der kombinerer tildeling med en aritmetisk eller bitvis operation. Disse forkortede former holder opdateringssรฆtninger korte og lette at lรฆse.

OperaTor Beskrivelse
= Tildeler vรฆrdien af โ€‹โ€‹den hรธjre operand til den venstre operand
+= Lรฆgger den hรธjre operand til den venstre operand og tildeler resultatet
-= Undertracfinder den hรธjre operand ud fra den venstre operand og tildeler resultatet
*= Multiplicerer begge operander og tildeler resultatet til den venstre operand
/= Dividerer den venstre operand med den hรธjre operand og tildeler resultatet
%= Tager modulet af begge operander og tildeler resten til den venstre operand

For eksempel er det en kortere mรฅde at skrive count += 5 pรฅ at skrive count = count + 5. Sammensatte tildelingsoperatorer fungerer med alle aritmetiske operatorer og ogsรฅ med bitvise operatorer, sรฅ de vises ofte i lรธkker og tรฆllere, hvor en vรฆrdi opdateres gentagne gange.

C# bitvis Operatorer

Bitvise operatorer virker pรฅ de individuelle bits af heltalvรฆrdier snarere end pรฅ hele tal. De er nyttige til opgaver pรฅ lavt niveau sรฅsom at indstille flag, maskere vรฆrdier og udfรธre hurtig multiplikation eller division med potenser af to.

OperaTor Beskrivelse
& Bitvis AND sรฆtter kun hver resultatbit til 1, nรฅr begge matchende bits er 1
| Bitvis ELLER sรฆtter hver resultatbit til 1, nรฅr en af โ€‹โ€‹de matchende bit er 1
^ Bitvis XOR sรฆtter kun hver resultatbit til 1, nรฅr de to matchende bits er forskellige
~ Bitvis komplement inverterer hver bit af sin enkeltoperand
<< Venstre shift flytter bits til venstre og udfylder de tomme positioner med nuller
>> Hรธjreforskydning flytter bitsene til hรธjre med det givne antal positioner

For eksempel sammenligner udtrykket 5 & 3 bitsene i begge tal og returnerer 1. Fordi en enkelt venstreforskydning fordobler en vรฆrdi, kan bitvise operatorer udfรธre nogle beregninger hurtigere end deres aritmetiske รฆkvivalenter, hvilket er vigtigt i grafik og indlejret kode.

C# OperaTor-prรฆcedens og associativitet

Nรฅr et udtryk indeholder flere operatorer, evaluerer C# dem ikke blot fra venstre mod hรธjre. Operator-prioritet angiver den rรฆkkefรธlge, som forskellige operatorer kรธrer i, og associativitet bestemmer rรฆkkefรธlgen, nรฅr to operatorer deler den samme prioritet.

  • Prรฆcedence: Multiplikation og division kรธres fรธr addition og subtraction, sรฅ 2 + 3 * 4 giver 14, ikke 20.
  • Venstre associativitet: De fleste binรฆre operatorer grupperes fra venstre mod hรธjre, sรฅ a โ€“ b โ€“ c evalueres som (a โ€“ b) โ€“ c.
  • Hรธjre associativitet: Tildelings- og betingelsesoperatorerne grupperer sig fra hรธjre mod venstre, sรฅ x = y = z tildeler z til y fรธrst.
  • Parenteser: Wrapping En del af et udtryk i parenteser tilsidesรฆtter standardrรฆkkefรธlgen og tydeliggรธr den tilsigtede beregning.

Ved at bruge parenteser i stedet for at huske hele prรฆcedenstabellen, holder du komplekse udtryk lรฆsbare og hjรฆlper med at forhindre subtile beregningsfejl.

Ofte Stillede Spรธrgsmรฅl

En variabel kan รฆndre sin vรฆrdi under udfรธrelse, mens en konstant, deklareret med nรธgleordet const, er fast pรฅ kompileringstidspunktet og aldrig รฆndres. Brug variabler til data, der opdateres, og konstanter til vรฆrdier som f.eks. Pi, der forbliver de samme.

Nรธgleordet var lader compileren udlede en lokal variabels type fra dens initialisering, sรฅ var count = 10 opretter et heltal. Variablen er stadig stรฆrkt typebestemt; var fjerner kun behovet for at skrive typenavnet eksplicit.

Et enkelt lighedstegn er tildelingsoperatoren, som gemmer en vรฆrdi i en variabel. Et dobbelt lighedstegn er lighedsoperatoren, som sammenligner to vรฆrdier og returnerer sand eller falsk. At forveksle de to er en almindelig begynderfejl.

En unรฆr operator arbejder pรฅ รฉn operand, sรฅsom den logiske IKKE-funktion ! eller inkrementet ++. En binรฆr operator arbejder pรฅ to operander, sรฅsom + for addition eller && for logisk OG. C# har ogsรฅ รฉn ternรฆr operator.

Den ternรฆre operator ?: er en forkortelse for en if-else-sรฆtning. Den evaluerer en betingelse og returnerer derefter den fรธrste vรฆrdi, nรฅr betingelsen er sand, og den anden, nรฅr den er falsk, som i int max = a > b ? a : b.

Null-koalescingoperatoren ?? returnerer sin venstre operand, nรฅr denne vรฆrdi ikke er null, ellers returnerer den den hรธjre operand. For eksempel angiver navn ?? "Gรฆst" en standardvรฆrdi. Varianten ??= tildeler kun en vรฆrdi, nรฅr mรฅlet i รธjeblikket er null.

Ja. GitHub Copilot foreslรฅr variabeldeklarationer, operatorudtryk og sammensatte tildelinger i Visual Studio og VS Code, og kan udfรธre en beregning fra en kommentar. RevSe hvert forslag til korrekte datatyper og den tilsigtede rรฆkkefรธlge.

ML.NET-pipelines er afhรฆngige af C#-variabler til at indeholde funktioner og labels, og af operatorer til at normalisere eller kombinere dem fรธr trรฆning. Numeriske og boolske vรฆrdier knyttes tydeligt til modelinput, hvilket holder en maskinlรฆringsworkflow stรฆrkt typebestemt og forudsigelig.

Opsummer dette indlรฆg med: