Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wskazówka
Dopiero zaczynasz programować oprogramowanie? Najpierw zacznij od samouczków Wprowadzenie . Przeprowadzą Cię przez proces pisania pierwszych programów w języku C#, zanim poznasz strukturę programu.
Czy masz doświadczenie w pracy w innym języku? Możesz chcieć przejrzeć sekcję Get started dla składni specyficznej dla języka C#, a następnie wrócić tutaj.
Kompilujesz programy języka C# z tych podstawowych bloków konstrukcyjnych: przestrzenie nazw organizują typy, typy (klasy, struktury, interfejsy, wyliczenia i delegaty) definiują zachowanie i dane oraz instrukcje i wyrażenia wykonują pracę w czasie wykonywania. Sposób tworzenia struktury punktu wejścia zależy od wybranego stylu aplikacji.
Wybieranie stylu aplikacji
Podczas tworzenia programu w języku C# należy dokonać dwóch niezależnych wyborów dotyczących sposobu jego struktury:
-
Oparte na plikach lub oparte na projekcie?
- Aplikacja oparta na plikach jest uruchamiana z jednego
.cspliku bez pliku projektu. - Aplikacja oparta na projekcie używa
.csprojpliku i może obejmować wiele plików źródłowych.
- Aplikacja oparta na plikach jest uruchamiana z jednego
-
Instrukcje najwyższego poziomu czy
Mainmetoda?- Instrukcje najwyższego poziomu umożliwiają pisanie kodu wykonywalnego bezpośrednio w górnej części pliku.
- Metoda
Mainopakowuje punkt wejścia w jawną metodę statyczną.
Zarówno aplikacje oparte na projekcie, jak i aplikacje oparte na plikach obsługują styl punktu wejścia.
Aplikacje oparte na plikach a aplikacje oparte na projekcie
Począwszy od języków C# 14 i .NET 10, aplikacje oparte na plikach umożliwiają uruchamianie programu zawartego w jednym *.cs pliku bez pliku projektu. Zapisz następujący kod w pliku o nazwie hello-world.cs i uruchom go poleceniem dotnet run hello-world.cs lub dotnet hello-world.cs.
#!/usr/bin/env dotnet
Console.WriteLine("Hello, World!");
Uwaga / Notatka
Wiersz #! umożliwia powłokom systemu Unix bezpośrednie uruchamianie pliku. W dowolnym systemie Unix ustaw uprawnienie wykonywania (+x) i uruchom plik z wiersza polecenia.
Aplikacje oparte na plikach obsługują całą składnię języka C# i mogą używać dyrektyw preprocesora do konfigurowania systemu kompilacji. Używaj aplikacji opartych na plikach dla małych narzędzi wiersza polecenia, prototypów i eksperymentów. Aplikacja oparta na plikach składa się z jednego pliku w katalogu:
my-app/
└── hello-world.cs
Aplikacje projektowe używają .csproj pliku i poleceń .NET CLIdotnet new, dotnet buildi dotnet run przepływu pracy. Wybierz aplikacje oparte na projekcie, gdy program obejmuje wiele plików lub wymaga szczegółowej konfiguracji kompilacji. Aplikacja oparta na projekcie zawiera plik projektu wraz z co najmniej jednym plikiem źródłowym:
my-app/
├── my-app.csproj
├── Program.cs
├── Models/
│ └── Person.cs
└── Services/
└── GreetingService.cs
Jeśli aplikacja oparta na plikach rośnie, możesz ją łatwo przekonwertować na aplikację opartą na projekcie. Uruchom polecenie dotnet project convert , aby wygenerować plik projektu z istniejącego pliku źródłowego.
Jeśli wiesz, że aplikacja potrzebuje wielu plików źródłowych od samego początku, zacznij od aplikacji opartej na projekcie. Należy unikać kroku konwersji i od razu organizować kod w oddzielne pliki.
Instrukcje najwyższego poziomu a metoda Main
Korzystając z instrukcji najwyższego poziomu, można napisać kod wykonywalny bezpośrednio w jednym pliku bez zawijania go w klasie i Main metodzie. Ten styl jest domyślny podczas tworzenia nowej aplikacji konsolowej za pomocą polecenia dotnet new console. W poniższym przykładzie pokazano nowoczesny program w języku C#, który używa instrukcji najwyższego poziomu:
Console.WriteLine("Hello, World!");
namespace YourNamespace
{
class YourClass
{
}
struct YourStruct
{
}
interface IYourInterface
{
}
delegate int YourDelegate();
enum YourEnum
{
}
}
Tylko jeden plik w projekcie może zawierać instrukcje najwyższego poziomu, a punkt wejścia jest pierwszym wierszem tekstu programu w tym pliku. Podczas tworzenia większych programów uwzględnia się więcej elementów programu.
Można również zdefiniować jawną metodę statyczną Main jako punkt wejścia programu:
// A skeleton of a C# program using an explicit Main method
namespace YourNamespace;
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World!");
}
}
Oba style punktu wejścia współpracują z aplikacjami opartymi na plikach i projektami. Oba style obsługują te same funkcje.
Kompilowanie i uruchamianie programów w języku C#
C# to skompilowany język. W przypadku aplikacji opartych na projekcie użyj dotnet build polecenia , aby skompilować pliki źródłowe w pakiecie binarnym. Użyj dotnet run, aby skompilować i uruchomić w jednym kroku. Interfejs dotnet wiersza polecenia dołączony do zestawu .NET SDK udostępnia wiele narzędzi do tworzenia, kompilowania i zarządzania projektami języka C#.
W przypadku aplikacji dotnet run hello-world.cs opartych na plikach kompiluje i uruchamia pojedynczy plik bezpośrednio — żaden plik projektu nie jest wymagany.
Wyrażenia i instrukcje
Jeśli śledziłeś samouczki Wprowadzenie, napisałeś już wyrażenia i instrukcje. Każdy wpisany wiersz kodu był jednym lub drugim (albo obydwoma). Teraz zdefiniujmy te terminy.
Wyrażenia i instrukcje są podstawowymi blokami konstrukcyjnymi programu w języku C#. Wyrażenie generuje wartość. Instrukcja wykonuje działanie i zazwyczaj kończy się średnikiem.
Poniżej przedstawiono wyrażenia:
-
42(wartość literału) -
x + y(operacja arytmetyczna) -
Math.Max(a, b)(wywołanie metody, które generuje wartość) -
condition ? trueValue : falseValue(wyrażenie warunkowe) -
new Person("John")(tworzenie obiektu)
Wyrażenie wykonuje akcję. Instrukcje sterują przepływem programu, deklarują zmienne lub wywołują operacje. Poniżej znajdują się stwierdzenia:
-
int x;(deklaracja) -
int x = 42;(instrukcja deklaracji z inicjalizacją) -
Console.WriteLine("Hello");(instrukcja wywołania metody) -
if (condition) { /* code */ }(instrukcja warunkowa) -
return result;(instrukcja zwracania)
Instrukcje często zawierają wyrażenia, a wyrażenia mogą być zagnieżdżane wewnątrz innych wyrażeń. Na przykład następująca instrukcja deklaracji przypisuje f wynik wyrażenia dodawania. To wyrażenie dodawania dodaje wyniki dwóch wyrażeń wywołania metody:
var maxResult = Math.Max(a, b) + Math.Max(c, d);
Aby uzyskać szczegółowe informacje na temat oświadczeń, zobacz Oświadczenia. Aby uzyskać informacje o składowych wyrażeniowych, zobacz Składowe wyrażeniowe.