无法从单独的文件导入命名空间

Can't import namespace from separate file

提问人:Pedro Dylan Freires Fernandes 提问时间:10/24/2022 最后编辑:Pradeep KumarPedro Dylan Freires Fernandes 更新时间:10/25/2022 访问量:165

问:

我的项目结构有问题。当我在单独的文件中创建一个命名空间,但在同一文件夹中测试时,从程序.cs文件并尝试使用此类命名空间进行编译时,我收到错误消息 cs0246:“找不到类型或命名空间名称'test'。是否缺少程序集引用?

下面是我创建的类的示例:

namespace test{
  public class planet{
    public int radius;
  }
}

这是我的程序.cs

using test;
class program{
  public static void Main(string[] args){
    planet mars = new planet();
    mars.radius = 5;
    System.Console.WriteLine(mars.radius);
    }
}

注意:- 仅编译程序 .cs

C# OOP 命名空间

评论

1赞 Selvin 10/24/2022
你没有提到你是如何编译这个的......如果你只编译,那么编译器对其他文件一无所知......将项目文件或命令行编译器与这两个文件一起使用program.cs
0赞 Pedro Dylan Freires Fernandes 10/24/2022
我只编译程序 .cs,非常感谢。我仍然需要学习如何开发项目文件,但是在命令行中编译两者确实解决了这个问题。

答:

0赞 Pradeep Kumar 10/25/2022 #1

将项目文件或命令行编译器与这两个文件一起使用。

为此,可以使用 Visual Studio 或命令行 按项目

msbuild.exe MyProj.proj /property:Configuration=Debug

通过命令行

编译当前目录中启用优化的所有 C# 文件,并定义 DEBUG 符号。输出为 File2.exe:

csc -define:DEBUG -optimize -out:File2.exe *.cs

编译当前目录中的所有 C# 文件,生成 File2.dll 的调试版本。不显示徽标,也不显示警告:

csc -target:library -out:File2.dll -warn:0 -nologo -debug *.cs

将当前目录中的所有 C# 文件编译为 Something.xyz (DLL):

csc -target:library -out:Something.xyz *.cs

有关更多详细信息,请参阅此答案