Как я могу поместить функции в другой файл CS?

0

В 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?

Теги:

3 ответа

2
Лучший ответ

Во-первых, вы не должны этого делать. В мире 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);
        }
    }
}
  • 0
    единственный ответ, который на самом деле касался того, что хотел ОП, даже если это не является обычным явлением в C #.
  • 0
    @tenpn То, что кто-то хочет, и то, что кому-то действительно нужно, часто разные. ОП не объяснил, почему он этого хочет, поэтому мы можем предположить, что он просто хочет этого, потому что именно так это было сделано в C / C ++. Все остальные ответы более уместны, чем этот. Но я узнал что-то новое от этого, поэтому я не жалуюсь.
Показать ещё 2 комментария
1

Вы не делаете этого так на С#.

В С#, прежде всего, обратите внимание, что ВСЕ функции (называемые методами в С#) должны быть в классе. Вы не можете, чтобы они плавали вокруг голых, как в C++.

Во-вторых, для доступа к классу С#, который определен в другом файле ".cs":

  • Если класс определен в другой сборке (то есть в другой DLL), то вы должны добавить в свой проект ссылку на эту сборку.
  • Тогда, если пространство имен, которое содержит этот класс, совпадает с пространством имен для класса, который должен использовать этот метод, вам больше не нужно ничего делать.
  • В противном случае в верхней части файла исходного кода вы должны поместить директиву using которая указывает пространство имен, которое содержит необходимый вам класс. Кроме того, вы можете указать полное пространство имен в самом вызове метода.

Обратите внимание, что для использования метода вам нужно либо создать экземпляр содержащего класса, либо этот метод должен быть статическим, и вы получите доступ к нему с ClassName.MethodName() синтаксиса ClassName.MethodName().

0

Если вы хотите выполнить те же проблемы, что и в C++ (по какой-то причине) на C# чтобы достичь этого, объявите (скажем) interface в одном файле, а его реализацию в другом, но в основном в вашем случае я бы предположил, что вы не вам нужно в основном:

  • объявить класс в одном файле
  • создать экземпляр в файле main.cs
  • используй это

Есть много других аспектов C# которые могут показаться вам знакомыми, как разработчик C++, поэтому я бы предложил изучить его немного.

  • 0
    отредактировано: main.css к main.cs
  • 0
    @Ritesh: да, спасибо :) недавно я за 80% на веб-разработке, так что это результат :)
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню