2010-11-01 5 views
8

Я пытаюсь изучить C#, исходя из фона C++, но я не могу понять, как связать два исходных файла вместе. У меня есть относительно простая программа, называемая test.cs и main.cs. Все, что я хочу сделать, это main.cs сказать:
#include <"test.cs">.Как включить несколько исходных файлов в C#

Ближайший я смог придумать это:

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

Однако компилятор не признает. Итак, как я могу включить несколько исходных файлов в мою основную часть?

+1

C# не требует связывания. Результат компиляции - полная сборка. –

+0

Если у вас есть только доступные инструменты командной строки, ознакомьтесь с этой страницей: http://www.microsoft.com/express/, где вы можете загрузить БЕСПЛАТНУЮ личную версию Visual Studio (среда разработчика), тогда компиляция C# будет ЛЕГКО. – BerggreenDK

+3

Когда я впервые начал изучать C# после использования C++, самым трудным для того, чтобы обернуть голову, был тот факт, что вам никогда не нужно вводить код '# include'. Разрешение типа для компиляции происходит более чем через один проход через код, так что все видимые типы в исходном и все видимые типы в ссылочных сборках становятся подходящими в качестве символов для разрешения типа. Больше нет необходимости явно вводить в действие, чтобы типы определялись «до», они потребляются. –

ответ

8

Вы передаете список исходных файлов в compiler:

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

Если вы используете Visual Studio при создании нового проекта .NET вы можете добавить столько исходных файлов, как вам нравится, и они автоматически будут скомпилирован.

+4

Учитывая, что у него есть 'Main.cs', я бы предположил, что ему не нужен переключатель'/target: library'. Я думаю, он должен использовать переключатель '/ out: file.exe'. –

4

Если вы строите это в Visual Studio, то просто иметь 2 файла в одном проекте - это все, что вам нужно сделать.

Если вы компилируете в командной строке, используя csc, вы должны ссылаться на оба файла в вызове csc. См. Ответ Дарина для этого.

Нет необходимости ссылаться на один файл от другого, но самый простой способ сделать типы видимыми друг для друга - это добавить классы в каждый файл в одно и то же пространство имен.

2

Исходные файлы не должны знать друг о друге. Варианты:

  • Компиляция оба файла вместе, как и в ответ Дарин в
  • Compile одного файла в библиотеку классов, и добавить ссылку на эту библиотеку при компиляции другого

Это зависит от того, хотите ли вы, чтобы результат был одним или двумя. Обычно ответ будет заключаться в том, чтобы собрать их вместе в одну и ту же сборку.

0

Если вы хотите разделить свой класс на два (или более) исходных файла, вы можете использовать partial class definitions. Итак, в вашем случае у вас есть «класс TheClass» в main.cs и «partial class TheClass» в test.cs. Это не так, как #include, но я думаю, достаточно близко.

Смежные вопросы