0

在 C/C++ 中,我可以创建一个文件并将所有函数放在这个文件中。

库文件

void plus(int i, int j);

库文件

#include "lib.h"

void plus(int i, int j)
{
    printf("%d\n", i+j);
}

主文件

#include "lib.h"
main()
{
    plus(1, 2);
}

但是在 C# 中,如何将函数放在其他cs文件中并将其包含在 中main.cs

4

3 回答 3

2

首先,你不应该真的这样做。在 C/C++ 世界中这样做是因为您不能使用稍后在程序中声明的函数。

头文件还用作操作系统或某些供应商的共享库的接口。

所以@Tigran 所说的相当于C# 中的相同主体。你声明了一个 iterface。

如果您真的想做字面意义上的要求,则可以使用部分函数。我把它放在这里给任何好奇的人。其设计目的与 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);
        }
    }
}
于 2013-10-14T07:23:44.043 回答
1

你不会在 C# 中那样做。

在 C# 中,首先要注意所有函数(在 C# 中称为方法)必须在一个类中。你不能像在 C++ 中那样让它们赤身裸体地四处飘荡。

其次,要访问在另一个“.cs”文件中定义的 C# 类:

  • 如果该类是在不同的程序集中定义的(即它在不同的 DLL 中),那么您必须在项目中添加对该程序集的引用。
  • 那么如果包含该类的命名空间与需要使用该方法的类的命名空间相同,则无需再做任何事情。
  • 否则,您必须在源代码文件的顶部放置一个using指令,该指令指定包含您需要的类的命名空间。或者,您可以在方法调用本身中指定完整的命名空间。

请注意,要使用该方法,您必须实例化包含类的实例,或者该方法必须是静态的并且您使用ClassName.MethodName()语法访问它。

于 2013-10-14T07:39:00.813 回答
0

如果您想遵循与C++(出于某种原因)中相同的问题C#来实现这一点,请在一个文件中声明(例如)interface一个文件并在另一个文件中实现它,但基本上在您的情况下,我认为您不需要那个,您基本上需要:

  • 在一个文件中声明一个类
  • main.cs在文件中实例化
  • 用它

对于开发人员来说,还有很多其他不同的方面C#可能对你来说很熟悉C++,所以我建议你稍微学习一下。

于 2013-10-14T07:07:40.390 回答