Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
La convenzione di denominazione per i file contenenti classi C# è leggermente diversa rispetto a Java. In Java tutti i file di origine hanno estensione java, ognuno contiene una dichiarazione di classe pubblica di livello principale e il nome della classe deve corrispondere al nome del file. In altri termini, una classe denominata Customer dichiarata con un ambito pubblico deve essere definita in un file di origine con il nome Customer.java.
Il codice sorgente C# è caratterizzato dall'estensione cs. Diversamente da Java, i file di origine possono contenere più di una dichiarazione di classe pubblica di livello principale e il nome del file non deve necessariamente corrispondere a uno dei nomi delle classi.
Dichiarazioni di livello principale
Sia in Java che in C# il codice sorgente inizia con alcune dichiarazioni di livello principale in una determinata sequenza. Esiste solo qualche differenza tra le dichiarazioni nei programmi Java e nei programmi C#.
Dichiarazioni di livello principale in Java
In Java è possibile raggruppare le classi con la parola chiave package. Una classe inserita in un package deve utilizzare la parola chiave package nella prima riga eseguibile del file di origine. Seguono le eventuali istruzioni di importazione necessarie per accedere alle classi di altri package, quindi la dichiarazione della classe, come illustrato di seguito:
package Acme;
import java.io.*;
class Customer
{
...
}
Dichiarazioni di livello principale in C#
In C# viene utilizzato il concetto di spazi dei nomi per raggruppare tramite la parola chiave namespace le classi correlate logicamente. Gli spazi dei nomi funzionano in modo simile ai package Java e una classe con lo stesso nome può risultare in due spazi dei nomi differenti. Per accedere alle classi definite in uno spazio dei nomi esterno a quello corrente, utilizzare la direttiva using seguita dal nome dello spazio dei nomi, come illustrato di seguito:
using System.IO;
namespace Acme
{
class Customer
{
// ...
}
}
È possibile inserire direttive using all'interno di una dichiarazione di spazio dei nomi. In tal caso gli spazi dei nomi importati fanno parte dello spazio dei nomi che li contiene.
Java non consente l'utilizzo di più package nello stesso file di origine. C# invece consente l'utilizzo di più spazi dei nomi in un unico file cs, come illustrato di seguito:
namespace AcmeAccounting
{
public class GetDetails
{
// ...
}
}
namespace AcmeFinance
{
public class ShowDetails
{
// ...
}
}
Nomi completi e alias degli spazi dei nomi
Analogamente a quanto avviene in Java, è possibile accedere alle classi contenute negli spazi dei nomi .NET Framework o definiti dall'utente senza un riferimento using per lo spazio dei nomi semplicemente specificando il nome completo della classe, come DataSet o AcmeAccounting.GetDetails nell'esempio precedente.
I nomi completi possono essere lunghi e difficili da ricordare. In questo caso è possibile utilizzare la parola chiave using per specificare un nome breve, o alias, che renda più leggibile il codice.
Nel codice riportato di seguito viene creato un alias per fare riferimento al codice scritto da una società fittizia:
using DataTier = Acme.SQLCode.Client;
class OutputSales
{
static void Main()
{
int sales = DataTier.GetSales("January");
System.Console.WriteLine("January's Sales: {0}", sales);
}
}
È opportuno notare che nella sintassi di WriteLine, con {x} nella stringa di formato, la x indica la posizione nell'elenco degli argomenti del valore da inserire in tale posizione. Presupponendo che il metodo GetSales restituisca 500, l'output dell'applicazione sarà il seguente:
January's Sales: 500
Direttive di pre-elaborazione
Analogamente a C e C++, in C# sono incluse direttive di pre-elaborazione che consentono di ignorare sezioni dei file di origine in modo condizionale, di segnalare condizioni di errore e di avviso e di definire le diverse aree del codice sorgente. Il termine "direttive di pre-elaborazione" viene utilizzato solo per uniformità con i linguaggi di programmazione C e C++, poiché nel linguaggio C# non è incluso un passaggio di pre-elaborazione separato. Per ulteriori informazioni, vedere Direttive per il preprocessore C#.