Condividi tramite


Struttura generale di un programma C#

I programmi C# sono costituiti da uno o più file. Ogni file contiene zero o più namespace. Uno spazio dei nomi contiene tipi quali classi, struct, interfacce, enumerazioni e delegati o altri spazi dei nomi. L'esempio seguente è lo scheletro di un programma C# che contiene tutti questi elementi.

using System;

Console.WriteLine("Hello world!");

namespace YourNamespace
{
    class YourClass
    {
    }

    struct YourStruct
    {
    }

    interface IYourInterface
    {
    }

    delegate int YourDelegate();

    enum YourEnum
    {
    }

    namespace YourNestedNamespace
    {
        struct YourStruct
        {
        }
    }
}

L'esempio precedente utilizza istruzioni di primo livello come punto di ingresso del programma. Solo un file può avere istruzioni di primo livello. Il punto di ingresso del programma è la prima riga di testo del programma in tale file. In questo caso, è il Console.WriteLine("Hello world!");. È anche possibile creare un metodo statico denominato Main come punto di ingresso del programma, come illustrato nell'esempio seguente:

// 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!");
        }
    }
}

In tal caso il programma inizierà nella prima riga del metodo Main, che è Console.WriteLine("Hello world!");

Espressioni e istruzioni

I programmi C# vengono compilati usando espressioni e istruzioni. Le espressioni producono un valore e le istruzioni eseguono un'azione:

Un'espressione è una combinazione di valori, variabili, operatori e chiamate al metodo che restituiscono un singolo valore. Le espressioni producono un risultato e possono essere usate ovunque sia previsto un valore. Gli esempi seguenti sono espressioni:

  • 42 (valore letterale)
  • x + y (operazione aritmetica)
  • Math.Max(a, b) (chiamata al metodo)
  • condition ? trueValue : falseValue (espressione condizionale)
  • new Person("John") (creazione di oggetti)

Un'istruzione è un'istruzione completa che esegue un'azione. Le istruzioni non restituiscono valori; controllano invece il flusso del programma, dichiarano variabili o eseguono operazioni. Gli esempi seguenti sono affermazioni:

  • int x = 42; (dichiarazione)
  • Console.WriteLine("Hello"); (istruzione di espressione - incapsula un'espressione di chiamata al metodo)
  • if (condition) { /* code */ } (istruzione condizionale)
  • return result; (istruzione di ritorno)

La distinzione principale: le espressioni restituiscono valori, mentre le istruzioni eseguono azioni. Alcuni costrutti, ad esempio le chiamate al metodo, possono essere entrambi contemporaneamente. Ad esempio, Math.Max(a, b) è un'espressione quando viene usata in int result = Math.Max(a, b);, ma diventa un'istruzione di espressione quando viene scritta da sola come Math.Max(a, b);.

Per informazioni dettagliate sulle dichiarazioni, consultare Dichiarazioni. Per informazioni sui membri con corpo espressione e altre funzionalità di espressione, vedere Membri con corpo espressione.

Nella sezione tipi della guida ai concetti fondamentali, si apprende su questi elementi del programma:

Specifica del linguaggio C#

Per altre informazioni, vedere Concetti di base nella specifica del linguaggio C# . La specifica del linguaggio è l'origine definitiva per la sintassi e l'utilizzo di C#.