我对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.cs csc /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(); } } }