Ostatni wpis związany ze zmianami w C#. Poniżej klika przydatnych informacji związanych z ustawieniami języka oraz pełna lista wszystkich zmian od wersji C# 7.0.
Wstęp
Wersje C# dzielą się na główną(major) i poboczne(minor). Nowe podejście z tworzeniem nie tylko głównych wersji językowych ale też pobocznych, rodzi czasem kilka problemów oto one.
Zmiana wersji języka w Visual Studio
Domyśle VS korzysta z najnowszej głównej wersji języka czyli C# 7.0 jeśli chcemy skorzystać z nowszej wersji musimy wybrać odpowiedni język w projekcie. Właściwości projektu -> Build -> Advanced
Do wyboru mamy całą kolekcję. W zależności od preferencji możemy wybrać konkretną wersję, najbardziej aktualną główna i najbardziej aktualną poboczną.
Problemem jest czasem to, że domyślnie jest wybrana opcja z najnowsza główna wersją, przez co czasem nie widać zmian dla C# 7.1+.
Szczegóły jak to ustawić dla wszystkich projektów jednocześnie i inne tutaj
Ciągła integracja
Większość środowisk ciągłej integracji z automatycznymi krokami do budowania projektów .NET używa parametrów, które określają, że docelowym językiem kompilowania jest główna wersja czyli na dziś dzień to C# 7.0. Jeśli używamy nowości z wersji C# 7.1+ wtedy mogą pojawić się błędy. Aby temu szybko zaradzić wystarczy podać w parametrach budowania (msbuild lub csc) poniższy parametr z odpowiednią wersją języka:
langversion=7.3
Lista zmian od wersji C# 7.0 do C# 7.3
Wisienka na torcie, wszystkie zmiany w jednym miejscu i linkami do szczegółów wyjaśniających co i jak.
C# 7.0
- Zmienne OUT w jednej linijce
- Tuple
- Dekonstrukcje
- Discards
- Pattern Matching
- Zwracanie ref-a
- Lokalne funkcje
- Expression-bodied
- Wyrażenia throw
- Literały numeryczne
C# 7.1
C# 7.2
- Nowe narzędzia do pisania efektywnego kodu
- Zmiany w parametrach nazwanych
- Podkreślenie na początku wyrażenia
- Modyfikator dostępu private protected
C# 7.3
- Możliwość dostępu do zmiennych z wyrażeniem fixed bez przypinania
- Możliwość przypisania nowej wartości do zmiennych oznaczonych przez ref
- Instrukcja stackalloc umożliwa inicjalizację
- Wyrażenie fixed wspiera więcej typów
- Wsparcie Typli dla opratorów == i !=
- Atrybut field dla get-ów i set-ów
- Naprawa błędu z przeciążeniem paramentu in
- Zmienne typu out w konstruktorach
- Nowe opcje kompilatora
Wersję języka C#
Do ustawienia odpowiedniej wersji języka C# potrzeba też wybrać odpowiedni .NET framework i odpowiedni VS. Poniżej lista wszystkich wersji i szczegóły o nich.Wersje języka | .NET Framework | Visual Studio |
---|---|---|
C# 1.0 | .NET Framework 1.0/1.1 | Visual Studio .NET 2002 |
C# 2.0 | .NET Framework 2.0 | Visual Studio 2005 |
C# 3.0 | .NET Framework 3.0\3.5 | Visual Studio 2008 |
C# 4.0 | .NET Framework 4.0 | Visual Studio 2010 |
C# 5.0 | .NET Framework 4.5 | Visual Studio 2012/2013 |
C# 6.0 | .NET Framework 4.6 | Visual Studio 2013/2015 |
C# 7.0 | .NET Framework 4.6 .NET Framework 4.7 .NET Core | Visual Studio 2017 |
C# 8.0 | ??.NET Framework 4.8 ?? .NET Core 3.0 | ?? Visual Studio 2019 |
Podsumowanie
Pierwsze nowości pojawiły się 9 marca 2017 roku. 26 nowy większych i mniejszych funkcji, które dotknęły wiele aspektów programowania i nie sposób się nie stykać z tymi nowościami na co dzień. Szybkość wypuszczania nowości jest jednak za duża i rodzi to trochę chaosu. Jak by się uprzeć to wiele dni można by zmarnować aby refaktoryzować kod pod daną wersję. Oczywiście nie jest to potrzebne, chodzi mi o to, że czasem trzeba trochę pracy włożyć aby zrobić update swojego projektu aby móc korzystać z nowych funkcji. Warto oczywiście to zrobić i gorąco do tego zachęcam. (o ile macie czas)