2010-11-01 16 views
8

Sto cercando di imparare C# da uno sfondo C++, ma non riesco a capire come collegare due file sorgente insieme. Ho un programma relativamente semplice chiamato test.cs e un main.cs. Tutto quello che voglio fare è su main.cs:
#include <"test.cs">.Come includere più file sorgente in C#

Il più vicino che ho potuto venire in mente è:

<Compile Include="test.cs"/Compile> 

Tuttavia il compilatore non riconosce questo. Quindi, come posso includere più file sorgente nel mio principale?

+1

C# non richiede il collegamento. Il risultato della compilazione è un assemblaggio completo. –

+0

Se si dispone solo di strumenti della riga di comando, dare un'occhiata a questa pagina: http://www.microsoft.com/express/ dove è possibile scaricare una versione personale GRATUITA di Visual Studio (ambiente di sviluppo), quindi la compilazione di C# sarà FACILE. – BerggreenDK

+3

Quando ho iniziato ad imparare C# dopo aver usato C++, la cosa più difficile da comprendere era il fatto che non è mai necessario il codice '# include'. La risoluzione del tipo per la compilazione avviene in più passaggi del codice, in modo che tutti i tipi visibili nell'origine e tutti i tipi visibili negli assembly referenziati diventino idonei come simboli per la risoluzione del tipo. Non è più necessario imporre esplicitamente include include in modo che i tipi siano definiti "prima" di essere consumati. –

risposta

8

si passa l'elenco dei file di origine al compiler:

csc.exe /target:library source1.cs source2.cs 

Se si utilizza Visual Studio quando si crea un nuovo progetto NET è possibile aggiungere il numero di file di origine come ti piace e saranno automaticamente compilato.

+4

Considerando che ha un 'Main.cs', suppongo che non voglia l'opzione'/target: library'. Penso che dovrebbe usare l'opzione '/ out: file.exe'. –

4

Se si sta creando questo in Visual Studio, è sufficiente disporre semplicemente dei 2 file nello stesso progetto.

Se si sta compilando sulla riga di comando utilizzando csc per fare riferimento a entrambi i file nella chiamata a csc. Guarda la risposta di Darin per questo.

Non è necessario fare riferimento a un file dell'altro, ma il modo più semplice per rendere visibili i tipi l'uno con l'altro è aggiungere le classi in ogni file allo stesso spazio dei nomi.

2

I file di origine non hanno bisogno di conoscersi l'un l'altro. Le opzioni sono:

  • Compilare entrambi i file insieme, come per la risposta di Darin
  • Compilare un file in una libreria di classi, e aggiungere un riferimento a quella libreria quando si compila l'altro

Dipende se vuoi che il risultato sia un assemblaggio o due. Di solito la risposta sarebbe di compilare i due insieme nello stesso assembly però.

0

Se si desidera dividere la classe su due (o più) file di origine, è possibile utilizzare partial class definitions. Quindi nel tuo caso hai "class TheClass" nel file main.cs e "partial class TheClass" nel test.cs. Questo non è lo stesso di #include, ma credo che sia abbastanza vicino.

Problemi correlati