C# · 12月 29, 2021

C#将类导入另一个类不起作用

我对C#来说很新,并且已经在我的主类中使用了一个类.这两个类是不同的文件,但是当我尝试使用它导入到另一个文件时,cmd说

The type or namespace name “MyClass” Could not be found (are you missing a using directive or an assembly reference?

我知道在Java中我必须使用CLASSPATH来处理这样的事情,但是我不知道C#.

额外细节:

正如你可能想到的,我通过命令提示符编译和执行.我正在使用/ target:library(我听说只有主类应该是.exe文件)来编译我的非主类.

我的代码如下所示:

public class MyClass { void stuff() { }}

和我的主班:

using System;using MyClass;public class MyMainClass { static void Main() { MyClass test = new MyClass(); /* Doesn’t work */ }}

我试图用命名空间MyNamespace {}包含我的非主类,并导入它,但它也不起作用.

解决方法 使用仅用于命名空间 – 如果两个类都在相同的命名空间中,那么只需删除使用.

您编译.exe时,必须参考第一步中创建的程序集:

csc /t:library /out:MyClass.dll MyClass.cscsc /reference:MyClass.dll /t:exe /out:MyProgram.exe MyMainClass.cs

如果您一起编译文件,可以使事情更简单:

csc /t:exe /out:MyProgram.exe MyMainClass.cs MyClass.cs

要么

csc /t:exe /out:MyProgram.exe *.cs

编辑:
以下是文件的外观:

MyClass.cs:

namespace MyNamespace { public class MyClass { void stuff() { } }}

MyMainClass.cs:

using System;namespace MyNamespace { public class MyMainClass { static void Main() { MyClass test = new MyClass(); } }}