Udostępnij za pomocą


Ogólna struktura programu w języku C#

Programy w języku C# składają się z co najmniej jednego pliku. Każdy plik zawiera zero lub więcej przestrzeni nazw. Przestrzeń nazw zawiera typy, takie jak klasy, struktury, interfejsy, wyliczenia i delegaty lub inne przestrzenie nazw. Poniższy przykład to szkielet programu w języku C#, który zawiera wszystkie te elementy.

using System;

Console.WriteLine("Hello world!");

namespace YourNamespace
{
    class YourClass
    {
    }

    struct YourStruct
    {
    }

    interface IYourInterface
    {
    }

    delegate int YourDelegate();

    enum YourEnum
    {
    }

    namespace YourNestedNamespace
    {
        struct YourStruct
        {
        }
    }
}

W poprzednim przykładzie użyto instrukcji najwyższego poziomu jako punktu wejściowego programu. Tylko jeden plik może zawierać instrukcje najwyższego poziomu. Punkt wejścia programu jest pierwszym wierszem tekstu programu w tym pliku. W tym przypadku jest to Console.WriteLine("Hello world!");. Możesz również utworzyć metodę statyczną o nazwie Main jako punkt wejścia programu, jak pokazano w poniższym przykładzie:

// A skeleton of a C# program
using System;
namespace YourNamespace
{
    class YourClass
    {
    }

    struct YourStruct
    {
    }

    interface IYourInterface
    {
    }

    delegate int YourDelegate();

    enum YourEnum
    {
    }

    namespace YourNestedNamespace
    {
        struct YourStruct
        {
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello world!");
        }
    }
}

W takim przypadku program rozpoczyna się od otwierającego nawiasu klamrowego Main metody, czyli Console.WriteLine("Hello world!");

Kompilowanie i uruchamianie programów w języku C#

C# to skompilowany język. W większości programów w języku C# używasz polecenia dotnet build do kompilowania grupy plików źródłowych do pakietu binarnego. Następnie użyj dotnet run polecenia , aby uruchomić program. (Ten proces można uprościć, ponieważ dotnet run kompiluje program przed uruchomieniem go w razie potrzeby). Te narzędzia obsługują bogaty język opcji konfiguracji i przełączników wiersza polecenia. Interfejs dotnet wiersza polecenia (CLI), który jest zawarty w zestawie SDK platformy .NET, udostępnia wiele narzędzi do generowania i modyfikowania plików języka C#.

Począwszy od języków C# 14 i .NET 10, można tworzyć aplikacje oparte na plikach, co upraszcza kompilowanie i uruchamianie programów w języku C#. Używasz polecenia dotnet run do uruchamiania programu zawartego w jednym *.cs pliku. Jeśli na przykład poniższy fragment kodu jest przechowywany w pliku o nazwie hello-world.cs, możesz uruchomić go, wpisując polecenie dotnet run hello-world.cs:

#!/usr/bin/env dotnet
Console.WriteLine("Hello, World!");

Pierwszy wiersz programu zawiera #! sekwencję powłok systemu Unix. Lokalizacja interfejsu dotnet wiersza polecenia może się różnić w różnych dystrybucjach. W dowolnym systemie Unix, jeśli ustawisz uprawnienie wykonywania (+x) w pliku C#, możesz uruchomić plik C# z wiersza polecenia:

./hello-world.cs

Źródło tych programów musi być pojedynczym plikiem, ale w przeciwnym razie prawidłowa jest cała składnia języka C#. Aplikacje oparte na plikach można używać w przypadku małych narzędzi wiersza polecenia, prototypów lub innych eksperymentów. Aplikacje oparte na plikach zezwalają na dyrektywy preprocesora , które konfigurują system kompilacji.

Wyrażenia i instrukcje

Programy języka C# są tworzone przy użyciu wyrażeń i instrukcji. Wyrażenia generują wartość, a instrukcje wykonują akcję:

Wyrażenie to kombinacja wartości, zmiennych, operatorów i wywołań metod, które są obliczane na jedną wartość. Wyrażenia generują wynik i mogą być używane wszędzie tam, gdzie oczekiwano wartości. Następujące przykłady to wyrażenia:

  • 42 (wartość literału)
  • x + y (operacja arytmetyczna)
  • Math.Max(a, b) (wywołanie metody)
  • condition ? trueValue : falseValue (wyrażenie warunkowe)
  • new Person("John") (tworzenie obiektu)

Instrukcja to kompletna instrukcja wykonująca działanie. Instrukcje nie zwracają wartości; Zamiast tego kontrolują przepływ programu, deklarują zmienne lub wykonują operacje. Poniższe przykłady to stwierdzenia.

  • int x = 42; (deklaracja)
  • Console.WriteLine("Hello"); (instrukcja wyrażenia — opakowuje wyrażenie wywołania metody)
  • if (condition) { /* code */ } (instrukcja warunkowa)
  • return result; (instrukcja zwracania)

Kluczowe rozróżnienie: wyrażenia są obliczane na wartości, a instrukcje wykonują akcje. Niektóre konstrukcje, takie jak wywołania metod, mogą być obydwoma. Na przykład Math.Max(a, b) jest wyrażeniem, gdy jest używane w int result = Math.Max(a, b);, ale staje się instrukcją wyrażenia, gdy jest pisane samodzielnie jako Math.Max(a, b);.

Aby uzyskać szczegółowe informacje na temat oświadczeń, zobacz Oświadczenia. Aby uzyskać informacje o elementach członkowskich wyrażeń i innych funkcjach wyrażeń, zobacz Elementy członkowskie wyrażeń.

Poznasz te elementy programu w sekcji dotyczącej typów przewodnika podstawowego:

Specyfikacja języka C#

Aby uzyskać więcej informacji, zobacz Podstawowe pojęcia w specyfikacji języka C#. Specyfikacja języka jest ostatecznym źródłem składni i użycia języka C#.