Home » Programmering » Skriv koden hurtigere med ny C#
Skriv koden hurtigere med ny C#

Skriv koden hurtigere med ny C#

Share

Hvis du udvikler ved hjælp af C#, har du meget at glæde dig over i den nye version 9. Den er ingen revolution, men du kan i nogle tilfælde programmere hurtigere

Microsoft frigav i november 2020 den nye .NET 5 – se omtalen i AOD nr. 1 – som især var fokuseret på at gøre .NET klar til en sammenlægning af samtlige runtimes til den kommende .NET 6. Men der var også en ny version af det populære C#-programmeringssprog.

Ser man tilbage på frigivelsen af den foregående opdatering af C#, var der ikke de helt store, revolutionerende nyheder. I C# 8 blev vi blandt andet introduceret for nullable reference types, men sproget er ret tæt på at være komplet, og nye tilføjelser handler meget om mikrooptimering og syntakssukker.

Nu er vi så nået til C# 9. Heller ikke her bliver verden sat på den anden ende efter lanceringen, men der er alligevel flere opsigtsvækkende features til C#-udviklernes værktøjskasse. Det bliver hurtigere at skrive kode.

Nyt i immutable data

De største nyheder finder vi indenfor immutable data (en lidt tynd dansk oversættelse er vel ”uforanderlige data”), hvilket i bund og grund handler om, at når først data er placeret i hukommelsen, kan de ikke tilrettes igen. Det skaber både sikkerhed og mulighed for optimering og er en stor bestanddel af andre (især funktionsorienterede) sprog.

Se også:  Nu er .NET-platformen på vej til den store forening

I C# har man altid kunne skabe immutable typer ved at gemme data væk i private felter, som kun kan aflæses gennem offentlige egenskaber, og som udelukkende kan tildeles en værdi gennem en constructor. Men for at kunne initialisere objekter uden en constructor skulle man kunne tildele felter en værdi gennem en offentlig egenskab eller metode, og så er objektet ikke længere immutabelt. Det er rettet i C# 9, hvor en egenskab nu kan defineres med init-kodeordet. Se figur 1, hvor en anden ny feature også kan ses. Det er nu muligt at benytte new-kodeordet uden typenavn.

Når man tidligere skabte sine egne immutable typer har det også været normal praksis at overskrive metoderne Equals og GetHashCode fra System.Object samt operatorerne == og !=. På den måde kan objekterne sammenlignes på værdier og ikke på referencer – ligesom objekter af System.String, som jo er baseret på en klasse, men sammenlignes på værdi.

Se også:  Nyt Teams-design skal sikre mere nærværende videomøder

Hvis man ønsker at skabe den form for immutable typer, er der virkelig hjælp at hente i den nye C# 9, fordi den nye record-type gør definering og brug meget simpel. I figur 2 kan du se defineringen af en terning med to immutable-egenskaber. Defineringen fylder en linjes kode, hvilket skal sammenlignes med mindst 15-20 linjer i C# 8. Bemærk i øvrigt, at det er nemt at kopiere værdier fra et objekt til et andet ved hjælp af with-kodeordet. Det er også en ny C# 9-feature.

Den nye record-type kan også indeholde egne medlemmer og indgå i et arvehierarki med andre record-typer, men den immutable funktionalitet bliver autogeneret helt automatisk.

I både forrige og i denne version af C# er der tilføjet en del muligheder relateret til mønstergenkendelse (pattern matching), og det er endnu et tegn på, at sproget bliver forfinet med muligheder, som findes i andre sprog. I C# 9 er der tilføjet forskellige logiske operatorer, og det vil uden tvivl blive brugt en del i fremtiden. Det giver blandt andet mulighed for at skrive kode med en syntaks, som er mere menneskelig.

TAGS
.Net
Microsoft
programmering

DEL DENNE
Share


Mest populære
Populære
Nyeste
Tags

Find os på de sociale medier

Modtag dagligt IT-nyhedsbrev

Få gratis tech-nyheder i din mail-indbakke alle hverdage. Læs mere om IT-UPDATE her

Find os på FaceBook

AOD/AOD.dk

Brogårdsvej 22
DK-2820 Gentofte
Telefon: 33 91 28 33
redaktion@aod.dk

Audio Media A/S

CVR nr. 16315648,
Brogårdsvej 22
DK-2820 Gentofte
Telefon: 33 91 28 33
info@audio.dk
Annoncesalg:
Lars Bo Jensen: lbj@audio.dk Telefon: 40 80 44 53
Annoncer: Se medieinformation her


AOD/AOD.dk   © 2021
Privatlivspolitik og cookie information - Audio Media A/S