Ukendt C# switch-syntaks

Tags:    c# syntax

Hej højtærede medlemmer af Udvikleren, som rent faktisk stadig bruger siden (her taler jeg en kende mere til de gamle, trofaste brugere end admin ;) )

Idag på arbejde så jeg noget C#-kode, som brugte en syntaks, jeg ikke kendte. Vi bruger VS2017 Pro eller Enterprise på arbejde, og jeg har Enterprise 17 herhjemme. Jeg har lige prøvet at efterligne syntaksen, men jeg får en syntaksfejl. Det så ud noget á la det her:

switch (etObject) {
case Type1 værdi1: f_1(); break;
case Type2 værdi2: f_2(); break;
...
}

Med andre ord blev både datatype og værdi matchet i ét hug, men det vil min version af VS ikke kende noget til, og jeg har ikke kunnet finde noget på nettet.

Siger det jer noget? Jeg ved, der er så meget nyt i C# 7 syntaksmæssigt.


Kh Thomas



2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
De har introduceret Pattern Matching i C# 7. VS 2017 burde være nok, men vidst noget med at du skal installere en NuGet pakke, eller opgradet dit .NET framework. Ellers kan det være at dit projekt er opsat med en tidligere udgave af C#/.NET.

Det er meget almindeligt i funktionelle sprog hvor man oftere udvider de samme datatyper med flere operationer modsat OOP sprog hvor man typisk laver nye klasser som implementerer de samme operationer. I funktionelle sprog sørger compileren også for at alle "patterns" er dækket, et "exhaustiveness" tjek.



Indlæg senest redigeret d. 28.04.2017 16:43 af Bruger #14645
Tusind tak for det hurtige og yderst hjælpsomme svar, Søren! Hav en god weekend! :)



t