Jakie są minimalne wymagania dla architektury .NET i wersji CLR do uruchamiania C# 7? Ponadto, czy potrzebuję VS 2017 do kompilacji C# 7?Wymagania C# 7 .NET/CLR/Visual Studio
Odpowiedz
NIE trzeba kierować na platformę .NET 4.6 lub nowszą, która jest niepoprawna. Aby użyć krotki potrzebujesz pakietu System.ValueTuple NuGet. Bezpośrednio pod numerem https://www.nuget.org/packages/System.ValueTuple/ widać, że obsługuje on obsługę wersji 4.5 i nowszych, a w rzeczywistości obsługuje wersje 4.0 i nowsze. A jeśli chcesz zwariować, jeśli utworzysz własną klasę System.ValueTuple
, która robi dokładnie to, co robi ten pakiet, będzie działać z powrotem na .NET 3.5 i prawdopodobnie również starsze. W przypadku typów "podobnych do zadania" potrzebny jest również pakiet NuGet, https://www.nuget.org/packages/System.Threading.Tasks.Extensions/. Ten pakiet działa również na .NET 4.5 i nowszych zgodnie z jego dokumentacją.
Inne funkcje C# 7 będą działać na platformie .NET 2 i wyższej, ponieważ są po prostu cukrem składniowym. Na przykład, po prostu napisał w .NET 2.0 i prawidłowo rzuca:
static void Main(string[] args)
{
string test = null;
string d = test ?? throw new ApplicationException("test");
}
Podobnie int.TryParse("123", out int i);
działa dobrze w .NET 2.0.
Nie przetestowałem każdej funkcji C# 7, ale ogólnie rzecz biorąc, z wyjątkiem krotek (i związanych z nimi funkcji, takich jak dekonstrukcja), powinno działać w .NET 2.0 i wyższych, ponieważ większość z nich jest po prostu syntaktycznym cukrem . Biorąc to pod uwagę, tak, potrzebujesz VS2017 do kompilacji C# 7. Jestem pewien, że w pewnym momencie inne kompilatory będą obsługiwać C# 7, ale nie dzisiaj.
Cechy potwierdziłem pracę w .NET 2.0:
- binarne literały
- numeryczne Separatory
- Inline
out
parametry - Korzystanie
_
wyrzucić z parametrów - funkcje lokalne
- Rodzaj oparte dopasowanie wzorców
if (obj is int i)
icase int i:
- stały przebieg dopasowania
if (i is 2)
- Var porównywania wzorców
if (i is var j)
- Ref powraca
- Rzuć wyrażenia
- Expression korpus pobierające i ustawiające
- Expression korpus konstruktorów i finalizatory
Dlaczego upadek? Co jest niedokładne w mojej odpowiedzi? – dman2306
Awansujcie ode mnie, ale warto przeczytać [tę odpowiedź] (http://stackoverflow.com/a/42675652/7122), ponieważ pakiet nuget jest potrzebny również dla nowych funkcji asynchronicznych. –
@DavidArno Dziękuję, zapomniałem o tej funkcji. Zaktualizowałem także informacje o tym pakiecie bryłek. Niestety, tak wiele rzeczy "rozważano" dla C# 7, ciężko jest znaleźć listę dokładnie tego, co zostało zaimplementowane jako Uwagi do wydania dla VS2017 wydają się niekompletne, wspominając tylko o największych dodatkach do funkcji. – dman2306
Aby użyć pełna moc C# 7 z pudełka (bez odwoływania się do nugetów i tak dalej) potrzebujesz VS 2017 i .Net 4.7 jako struktura docelowa.
- 1. Zrozumienie C Wymagania inicjalizacji # pole
- 2. Wymagania wstępne klienta .NET Framework 3.5 SP1
- 3. Wymagania sprzętowe HAXM
- 4. Visual Studio 2012 Wymagania: Failure Konfiguracja Niepoprawna funkcja
- 5. TeamCity - Niezaspokojone wymagania (DotNetFramework4.0_x86)
- 6. Brakujące wymagania wstępne dotyczące programu Visual C++ w Visual Studio 2012
- 7. Python argparse wymagania warunkowe
- 8. Wymagania dotyczące flto
- 9. Wymagania systemowe serwera solr?
- 10. Visual Studio przestał działać - na Win 7
- 11. Minimalne wymagania sprzętowe dla studia Android?
- 12. Wdrażanie kodu C# 7 do VSTS
- 13. Installshield LE Wiosna 2012 nie można odnaleźć konfiguracji Wymagania wstępne
- 14. Wymagania wstępne do nauki Język składania
- 15. SVN, Teamcity: wirtualizacja/wymagania sprzętowe
- 16. błąd podczas prowadzonych wymagania RVM
- 17. Wymagania przestrzenne dotyczące scalania-sortowania
- 18. Jak określić minimalne wymagania systemowe?
- 19. Profil klienta Wymagania wstępne aplikacji
- 20. Wymagania dotyczące mocowania w Symfony2
- 21. Wymagania dotyczące bibliotek środowiska wykonawczego wysyłania/bibliotek DLL
- 22. Dodawanie kalendarza Google przez wymagania adresu URL
- 23. Funkcje C# 7 nie działają w projekcie WWW w Visual Studio 2017 RC
- 24. Visual Studio 2008 C++ nie platforma x64
- 25. Jak wyeliminować zduplikowane wymagania spowodowane względnymi ścieżkami?
- 26. TeamCity nie trafia do budowania projektów przy użyciu C# 7
- 27. Wymagania systemowe .NET Framework 4.5 operacyjny (bez Vista i XP)
- 28. C# 7 Błąd kompilatora - Dopasowywanie wzorca
- 29. C# ustawienie jasności ekranu Windows 7
- 30. C# 7 wartość krotki/asymetria dekonstrukcji
Dowolna wersja .NET 4.6.x jest w porządku. Roslyn jest open source, więc wszystko jest możliwe. Jeśli chcesz, aby ktoś zrobił to za Ciebie, pobierz VS2017. Zostało wydane wczoraj. Wersja społecznościowa jest bezpłatna. –