Articles of c # 7.0

Pattern Matching su una stringa

Mi stavo chiedendo se c’è un modo per fare qualcosa di simile in c # 7 var test = “aaeag”; switch (test) { case test.StartsWith(“a”): break; default: break; } Purtroppo non sembra ansible. È corretto o sto facendo qualcosa di sbagliato?

Commutatore C # 7 con assegni null

C # 7 introduce una nuova funzione chiamata patterns , che puoi usare con Is-Expression o Switch cases come questo: string str = null; switch(str){ case string x: Console.WriteLine(“string ” + x); break; default: Console.WriteLine(“default”); break; } e ci si aspetterebbe che andasse all’interno del caso # 1, in quanto è dello stesso tipo, ma […]

Ambito variabile di corrispondenza del modello

Nella specifica per la corrispondenza del modello Roslyn si afferma che: L’ambito di una variabile di modello è il seguente: Se il modello appare nella condizione di un’istruzione if, il suo ambito è la condizione e l’istruzione controllata dell’istruzione if, ma non la sua clausola else. Tuttavia, gli ultimi post e presentazioni “What’s new” di […]

Come creare un elenco di ValueTuple?

È ansible creare un elenco di ValueTuple in C # 7? come questo: List Method() { return Something; }

Quale versione di C # utilizza .NET Core?

So che la versione C # dipende da .NET Framework . Ma .NET Core quale versione utilizza? In particolare .NET Core 2? C # 7?

Ottenendo “il nome dell’elemento Tuple è dedotto. Si prega di utilizzare la lingua versione 7.1 o successiva per accedere a un elemento tramite il suo nome derivato. “

Abbiamo il seguente codice che ha funzionato bene nella nostra app UWP fino a oggi dopo aver aggiornato Visual Studio 2017 all’ultimo 15.3 . private void Test() { var groups = new List<(Guid key, IList items)>(); var items = new List { (“a”, true), (“b”, false), (“c”, false) }; var group = (Guid.NewGuid(), items); groups.Add(group); […]

Come creare tuple di tipo di riferimento con nome?

La seguente riga crea un ValueTuple denominato: var tuple = (a:1, b:2, c:3, d:4, e:5, f:6); I tipi di valore non possono essere passati in modo efficiente. C#7 offre un modo per creare tuple con nome del tipo Tuple ?

Perché le funzioni locali generano IL diverso dai metodi anonimi e dalle espressioni Lambda?

Perché il compilatore C # 7 trasforma le funzioni locali in metodi all’interno della stessa class in cui si trova la loro funzione genitore. Mentre per i metodi anonimi (e le espressioni Lambda) il compilatore genera una class nidificata per ogni funzione genitore, che conterrà tutti i suoi metodi anonimi come metodi di istanza? Ad […]

È ansible distribuire un’app Web C # 7 in Azure utilizzando Kudu?

Poiché Visual Studio 2017 è stato rilasciato e possiamo utilizzare le nuove funzionalità di C # 7, mi aspettavo che funzionasse durante la distribuzione su app Web di Azure. Purtroppo stiamo riscontrando errori di compilazione quando si utilizza la distribuzione continua (kudu git deploy), quindi sembra che Azure non supporti ancora la nuova toolchain. C’è […]

La corrispondenza del modello uguale a nullo vs è nullo

Da Microsoft new-features-in-c-7-0: public void PrintStars(object o) { if (o is null) return; // constant pattern “null” if (!(o is int i)) return; // type pattern “int i” WriteLine(new string(‘*’, i)); } Qual’è la differenza di o == null e o is null ?