2010-11-01 27 views
8

Estoy tratando de aprender C# proveniente de un fondo C++, pero no puedo entender cómo vincular dos archivos fuente juntos. Tengo un programa relativamente simple llamado test.cs y main.cs. Todo lo que quiero hacer es en main.cs decir:
#include <"test.cs">.Cómo incluir varios archivos fuente en C#

Lo más cerca que he sido capaz de llegar a decir:

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

Sin embargo, el compilador no reconoce esto. Entonces, ¿cómo puedo incluir múltiples archivos fuente en mi main?

+1

C# no requiere enlace. El resultado de la compilación es un ensamblaje completo. –

+0

Si solo tiene herramientas de línea de comandos disponibles, eche un vistazo a esta página: http://www.microsoft.com/express/ donde puede descargar una versión personal GRATUITA de Visual Studio (entorno de desarrollador) y compilar C# será FÁCIL. – BerggreenDK

+3

Cuando comencé a aprender C# después de usar C++, lo más difícil de entender fue el hecho de que nunca se necesita el código '# include'. La resolución de tipo para la compilación se produce en más de una pasada a través del código, de modo que todos los tipos visibles en la fuente y todos los tipos visibles en los ensamblados a los que se hace referencia sean elegibles como símbolos para la resolución de tipo. Ya no es necesario aplicar explícitamente incluye para que los tipos se definan 'antes' de que se consuman. –

Respuesta

8

se pasa la lista de archivos de origen a la compiler:

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

Si utiliza Visual Studio cuando se crea un nuevo proyecto .NET se puede añadir tantos archivos de origen como desee y serán automáticamente compilado.

+4

Considerando que tiene un 'Main.cs', supongo que no quiere el modificador'/target: library'. Creo que debería usar el modificador '/ out: file.exe'. –

4

Si está compilando esto en Visual Studio, simplemente basta con tener los 2 archivos en el mismo proyecto.

Si está compilando en la línea de comando usando csc, debe hacer referencia a ambos archivos en la llamada a csc. Vea la respuesta de Darin para esto.

No es necesario hacer referencia a un archivo desde el otro, pero la manera más fácil de hacer que los tipos sean visibles entre sí sería agregar las clases en cada archivo al mismo espacio de nombres.

2

Los archivos fuente no necesitan conocerse entre sí. Las opciones son:

  • Compilar los dos archivos juntos, según la respuesta de Darin
  • Compilar un archivo en una biblioteca de clases, y añadir una referencia a la biblioteca cuando se compila el otro

Depende si desea que el resultado sea un conjunto o dos. Por lo general, la respuesta sería compilar los dos juntos en el mismo conjunto.

0

Si desea dividir su clase en dos (o más) archivos fuente, puede usar partial class definitions. Entonces, en su caso, tiene "clase TheClass" en main.cs y "clase parcial TheClass" en el test.cs. Esto no es lo mismo que #include, pero creo que lo suficientemente cerca.

Cuestiones relacionadas