В C/C++ я могу создать файл и поместить все функции в этот файл.
lib.h
void plus(int i, int j);
lib.cpp
#include "lib.h"
void plus(int i, int j)
{
printf("%d\n", i+j);
}
main.cpp
#include "lib.h"
main()
{
plus(1, 2);
}
Но в С#, как я могу поместить функции в другой файл cs
и включить его в main.cs
?
Во-первых, вы не должны этого делать. В мире C/C++ это делается потому, что вы не можете использовать функции, объявленные позже в программе.
Также файлы заголовков служат интерфейсом для разделяемых библиотек на вашей ОС или у какого-либо поставщика.
Итак, что говорит @Tigran, это эквивалент одного и того же принципала в С#. Вы объявляете итерал.
Если вы действительно хотели делать то, что вы просите в буквальном смысле, вы можете использовать частичные функции. Я помещаю его здесь для всех, кто интересуется. Цель, для которой он был разработан, отличается от C/C++, поэтому вам нужно будет оценить, действительно ли вы хотите это сделать, я думаю, что вы этого не делаете.
Вы можете сделать это, см. Msdn для более:
namespace PM
{
partial class A
{
partial void OnSomethingHappened(string s);
}
// This part can be in a separate file.
partial class A
{
// Comment out this method and the program
// will still compile.
partial void OnSomethingHappened(String s)
{
Console.WriteLine("Something happened: {0}", s);
}
}
}
Вы не делаете этого так на С#.
В С#, прежде всего, обратите внимание, что ВСЕ функции (называемые методами в С#) должны быть в классе. Вы не можете, чтобы они плавали вокруг голых, как в C++.
Во-вторых, для доступа к классу С#, который определен в другом файле ".cs":
using
которая указывает пространство имен, которое содержит необходимый вам класс. Кроме того, вы можете указать полное пространство имен в самом вызове метода. Обратите внимание, что для использования метода вам нужно либо создать экземпляр содержащего класса, либо этот метод должен быть статическим, и вы получите доступ к нему с ClassName.MethodName()
синтаксиса ClassName.MethodName()
.
Если вы хотите выполнить те же проблемы, что и в C++
(по какой-то причине) на C#
чтобы достичь этого, объявите (скажем) interface
в одном файле, а его реализацию в другом, но в основном в вашем случае я бы предположил, что вы не вам нужно в основном:
main.cs
Есть много других аспектов C#
которые могут показаться вам знакомыми, как разработчик C++
, поэтому я бы предложил изучить его немного.