Programowanie przy użyciu języka Visual F# w programie Visual Studio

Ten artykuł zawiera informacje o funkcjach programu Visual Studio na potrzeby programowania w języku F#.

Instalowanie obsługi języka F#

Aby programować za pomocą języka F# w programie Visual Studio, najpierw zainstaluj obciążenie programowanie aplikacji klasycznych .NET, jeśli jeszcze tego nie zrobiono. Obciążenia programu Visual Studio są instalowane za pomocą Instalator programu Visual Studio, które można otworzyć, wybierając pozycję Narzędzia>Pobierz narzędzia i funkcje.

.NET desktop development workload in Visual Studio

Funkcje projektu języka F#

Różne szablony projektów i elementów są dostępne dla języka F# w programie Visual Studio. Na poniższej ilustracji przedstawiono niektóre szablony projektów języka F# dla platform .NET Core i .NET Standard:

F# project templates in Visual Studio

Na poniższej ilustracji przedstawiono niektóre szablony elementów języka F#:

F# item templates in Visual Studio

Aby uzyskać więcej informacji na temat szablonów elementów na potrzeby dostępu do danych, zobacz Dostawcy typów języka F#.

Poniższa tabela zawiera podsumowanie funkcji we właściwościach projektu dla języka F#:

Ustawienie projektu Obsługiwane w języku F#? Uwagi
Pliki zasobów Tak
Ustawienia kompilacji, debugowania i odwołania Tak
Wielowersyjność kodu Tak
Ikona i manifest Nie. Dostępne za pośrednictwem opcji wiersza polecenia kompilatora.
usługi klienckie ASP.NET Nie.
ClickOnce Nie. Użyj projektu klienta w innym języku platformy .NET, jeśli ma to zastosowanie.
Silne nazewnictwo Nie. Dostępne za pośrednictwem opcji wiersza polecenia kompilatora.
Publikowanie zestawów i przechowywanie wersji Nie.
Analiza kodu Nie. Narzędzia do analizy kodu można uruchamiać ręcznie lub w ramach polecenia po kompilacji.
Zabezpieczenia (zmienianie poziomów zaufania) Nie.

Projektant projektu

Projektant projektu składa się z kilku stron właściwości projektu pogrupowanych według powiązanych funkcji. Strony dostępne dla projektów języka F# są głównie podzbiorem tych, które są dostępne dla innych języków i zostały opisane w poniższej tabeli. Linki są dostarczane do odpowiedniej strony Projektant projektu w języku C#.

Strona Projektant projektu Pokrewne łącza opis
Aplikacja Strona aplikacji, Projektant projektu Umożliwia określenie ustawień i właściwości na poziomie aplikacji, takich jak tworzenie biblioteki lub pliku wykonywalnego, wersja platformy .NET przeznaczona dla aplikacji oraz informacje o tym, gdzie są przechowywane pliki zasobów używane przez aplikację.
Tworzenie Strona kompilacji, Projektant projektu Umożliwia kontrolowanie sposobu kompilowania kodu.
Zdarzenia kompilacji Strona zdarzeń kompilacji, Projektant projektu Umożliwia określenie poleceń do uruchomienia przed kompilacją lub po jej zakończeniu.
Debugowanie Strona debugowania, Projektant projektu Umożliwia kontrolowanie sposobu działania aplikacji podczas debugowania. Obejmuje to polecenia, które mają być używane i jakie jest katalog początkowy aplikacji, oraz wszelkie specjalne tryby debugowania, które chcesz włączyć, takie jak kod natywny i sql.
Pakiet (tylko zestaw SDK platformy.NET) Nie dotyczy Umożliwia definiowanie metadanych pakietu NuGet podczas publikowania jako pakietu NuGet.
Ścieżki odwołania Zarządzanie odwołaniami w projekcie Umożliwia określenie miejsca wyszukiwania zestawów, od których zależy kod.
Zasoby (tylko zestaw SDK platformy.NET) Nie dotyczy Umożliwia generowanie domyślnego pliku zasobów i zarządzanie nim.

Ustawienia specyficzne dla języka F#

Poniższa tabela zawiera podsumowanie ustawień specyficznych dla języka F#:

Strona Projektant projektu Ustawienie opis
Tworzenie Generowanie wywołań końcowych W przypadku wybrania tej opcji włącza korzystanie z instrukcji języka Microsoft Intermediate Language (MSIL). Powoduje to ponowne użycie ramki stosu dla funkcji cyklicznych tail. Odpowiednik opcji kompilatora --tailcalls .
Tworzenie Inne flagi Umożliwia określenie dodatkowych opcji wiersza polecenia kompilatora.

Funkcje edytora kodu i tekstu

Następujące funkcje programu Visual Studio Code i edytorów tekstów są obsługiwane w języku F#:

Funkcja opis Obsługiwane w języku F#?
Automatyczne komentowanie Umożliwia komentowanie lub usuwanie komentarza sekcji kodu. Tak
Automatyczne formatowanie Formatuje kod ze standardowym wcięciem i stylem. Nie.
Zakładki Umożliwia zapisywanie miejsc w edytorze. Tak
Zmienianie wcięcia Wcięcia lub niezidenty zaznaczone wiersze. Tak
Inteligentne wcięcie Automatycznie wcięcie i de-wcięcie kursora zgodnie z regułami określania zakresu języka F#. Tak
Znajdowanie i zastępowanie tekstu Umożliwia wyszukiwanie w pliku, projekcie lub rozwiązaniu oraz potencjalnie zmianę tekstu. Tak
Przejdź do definicji interfejsu API platformy .NET Gdy kursor jest umieszczony w interfejsie API platformy .NET, pokazuje kod wygenerowany na podstawie metadanych platformy .NET. Nie.
Przejdź do definicji interfejsu API zdefiniowanego przez użytkownika Gdy kursor znajduje się na zdefiniowanej jednostce programu, przenosi kursor do lokalizacji w kodzie, w którym zdefiniowano jednostkę. Tak
Przejdź do wiersza Umożliwia przejście do określonego wiersza w pliku według numeru wiersza. Tak
Paski nawigacji w górnej części pliku Umożliwia przechodzenie do lokalizacji w kodzie, na przykład przez nazwę funkcji. Tak
Wskazówki dotyczące struktury bloków Pokazuje wytyczne wskazujące zakresy języka F#, które można umieścić na wskaźniku myszy dla wersji zapoznawczej. Tak
Obramowanie Umożliwia zwinięcie sekcji kodu w celu utworzenia bardziej kompaktowego widoku. Tak
Tabify Konwertuje spacje na karty. Tak
Kolorowanie typów Pokazuje zdefiniowane nazwy typów w specjalnym kolorze. Tak
Szybkie znajdowanie. Zobacz Szybkie znajdowanie, znajdowanie i zastępowanie okna. Umożliwia wyszukiwanie w pliku lub projekcie. Tak
Ctrl+kliknij, aby przejść do definicji Umożliwia przytrzymanie klawiszy Ctrl i kliknięcie symbolu F#w celu wywołania funkcji Przejdź do definicji. Tak
Przejdź do definicji z funkcji QuickInfo Symbole z możliwością klikania wewnątrz etykietek narzędzi, które wywołują pozycję Przejdź do definicji. Tak
Przejdź do wszystkich Włącza globalną, rozmytą nawigację dla wszystkich konstrukcji języka F# za pomocą klawisza Ctrl+T. Tak
Zmiana nazwy wstawionego elementu Zmienia nazwę wszystkich wystąpień symbolu wbudowanego. Tak
Znajdź wszystkie odwołania Znajduje wszystkie wystąpienia symbolu w bazie kodu. Tak
Uprość poprawkę kodu nazwy Usuwa niepotrzebne kwalifikatory dla symboli języka F#. Tak
Usuń poprawkę kodu instrukcji nieużywanej open Usuwa wszystkie niepotrzebne instrukcje open w dokumencie. Tak
Poprawka kodu nieużywanej wartości Sugeruje zmianę nazwy nieużywanego identyfikatora na podkreślenie. Tak

Aby uzyskać ogólne informacje na temat edytowania kodu w programie Visual Studio i funkcji edytora tekstów, zobacz Pisanie kodu w edytorze.

Funkcje funkcji IntelliSense

Poniższa tabela zawiera podsumowanie obsługiwanych funkcji IntelliSense i nieobsługiwanych w języku F#:

Funkcja opis Obsługiwane w języku F#?
Automatyczne implementowanie interfejsów Generuje wycinki kodu dla metod interfejsu. Tak
Fragmenty kodu Wprowadza kod z biblioteki typowych konstrukcji kodowania do tematów. Nie.
Dokończ wyraz Zapisuje wpisywanie, kończąc wyrazy i nazwy podczas wpisywania. Tak
Automatyczne uzupełnianie Po włączeniu powoduje, że uzupełnianie wyrazów wybiera pierwsze dopasowanie podczas wpisywania, zamiast czekać na wybranie jednego lub naciśnięcie klawisza Ctrl+Spacja. Tak
Uzupełnianie oferty dla symboli w nieotwartych przestrzeniach nazw W przypadku automatycznego uzupełniania sugerowany jest pasujący symbol, który znajduje się w nieotwartej przestrzeni nazw, oferując ukończenie z odpowiednią open instrukcją po wybraniu. Tak
Generowanie elementów kodu Umożliwia generowanie kodu wycinkowego dla różnych konstrukcji. Nie.
Lista składników Podczas wpisywania operatora dostępu do składowych (.) są wyświetlane elementy członkowskie dla typu. Tak
Organizowanie przy użyciu/otwieranie Organizuje przestrzenie nazw przywoływalne przy użyciu instrukcji w języku C# lub otwartych dyrektyw w języku F#. Nie.
Informacje o parametrach Przedstawia przydatne informacje o parametrach podczas pisania wywołania funkcji. Tak
Szybkie informacje Wyświetla pełną deklarację dla dowolnego identyfikatora w kodzie. Tak
Automatyczne uzupełnianie nawiasów klamrowych Automatycznie wykonuje konstrukcje składni podobne do nawiasów klamrowych języka F# w sposób transakcyjny. Tak

Aby uzyskać ogólne informacje na temat funkcji IntelliSense, zobacz Używanie funkcji IntelliSense.

Funkcje debugowania

Poniższa tabela zawiera podsumowanie funkcji, które są dostępne podczas debugowania kodu języka F#:

Funkcja opis Obsługiwane w języku F#?
okno zmiennych automatycznych Pokazuje zmienne automatyczne lub tymczasowe. Nie.
Punkty przerwania Umożliwia wstrzymanie wykonywania kodu w określonych punktach podczas debugowania. Tak
Warunkowe punkty przerwania Włącza punkty przerwania, które testują warunek określający, czy wykonanie powinno zostać wstrzymane. Tak
Edytuj i kontynuuj Umożliwia modyfikowanie i kompilowanie kodu podczas debugowania uruchomionego programu bez zatrzymywania i ponownego uruchamiania debugera. Nie.
Wyrażenie Ocenia i wykonuje kod w czasie wykonywania. Nie, ale można użyć ewaluatora wyrażeń języka C#, chociaż należy użyć składni języka C#.
Debugowanie historyczne Umożliwia przejście do wcześniej wykonanego kodu. Tak
okno zmiennych lokalnych Pokazuje wartości i zmienne zdefiniowane lokalnie. Tak
Uruchom do kursora Umożliwia wykonywanie kodu do momentu osiągnięcia wiersza zawierającego kursor. Tak
Przechodzenie do Umożliwia zaawansowane wykonywanie i przechodzenie do dowolnego wywołania funkcji. Tak
Przechodzenie do kroku Umożliwia zaawansowane wykonywanie w bieżącej ramce stosu i przechodzenie obok dowolnego wywołania funkcji. Tak

Aby uzyskać ogólne informacje na temat debugera programu Visual Studio, zobacz Debugowanie w programie Visual Studio.

Dodatkowe narzędzia

Poniższa tabela zawiera podsumowanie obsługi języka F# w narzędziach programu Visual Studio.

Narzędzie opis Obsługiwane w języku F#?
Hierarchia wywołań Wyświetla zagnieżdżona struktura wywołań funkcji w kodzie. Nie.
Metryki kodów Zbiera informacje o kodzie, takie jak liczba wierszy. Nie.
Widok klas Udostępnia widok kodu w projekcie oparty na typach. Nie.
Okno Lista błędów Przedstawia listę błędów w kodzie. Tak
F# Interactive Umożliwia wpisywanie (lub kopiowanie i wklejanie) kodu F# i uruchamianie go natychmiast, niezależnie od budynku projektu. Okno interaktywne języka F# to pętla odczytu, oceny, drukowania (REPL). Tak
Przeglądarka obiektów Umożliwia wyświetlanie typów w zestawie. Typy języka F# wyświetlane w skompilowanych zestawach nie są wyświetlane dokładnie tak, jak zostały utworzone. Możesz przeglądać skompilowana reprezentację typów języka F#, ale nie można wyświetlić typów, ponieważ są one wyświetlane w języku F#.
Okno danych wyjściowych Wyświetla dane wyjściowe kompilacji. Tak
Analiza wydajności Udostępnia narzędzia do mierzenia wydajności kodu. Tak
Okno właściwości Wyświetla i włącza edytowanie właściwości obiektu w środowisku deweloperów, które koncentruje się. Tak
Eksplorator serwera Udostępnia sposoby interakcji z różnymi zasobami serwera. Tak
Eksplorator rozwiązań Umożliwia wyświetlanie projektów i plików oraz zarządzanie nimi. Tak
Lista zadań Umożliwia zarządzanie elementami roboczymi odnoszącymi się do kodu. Nie.
Projekty testowe Udostępnia funkcje, które ułatwiają testowanie kodu. Nie.
Przybornik Wyświetla karty zawierające przeciągalne obiekty, takie jak kontrolki i sekcje tekstu lub kodu. Tak

Zobacz też