无法从单独文件导入namespace:编译program.cs遇CS0246错误
解决CS0246:找不到命名空间'test'的问题
当你在同一test文件夹的独立文件中定义了test命名空间下的planet类,但仅编译program.cs时,会触发CS0246错误,提示“找不到类型或命名空间名称‘test’,是否缺少程序集引用?”
类定义文件示例(如Planet.cs)
namespace test{ public class planet{ public int radius; } }
Program.cs代码示例
using test; class program{ public static void Main(string[] args){ planet mars = new planet(); mars.radius = 5; System.Console.WriteLine(mars.radius); } }
问题原因及解决办法
- 原因:单独编译
program.cs时,编译器仅处理该文件,无法识别同一文件夹下其他文件中定义的test命名空间和planet类。 - 解决方法:
- 编译时包含所有相关文件:使用C#编译器
csc命令时,将所有依赖文件一同传入。例如在命令行执行:
编译器会同时处理两个文件,从而找到对应的命名空间和类。csc Program.cs Planet.cs - 使用.NET项目文件管理:若基于.NET SDK开发,创建
.csproj项目文件并包含所有代码文件,执行dotnet build命令编译整个项目,编译器会自动处理所有依赖关系。
- 编译时包含所有相关文件:使用C#编译器
内容的提问来源于stack exchange,提问作者Pedro Dylan Freires Fernandes
相关产品推荐
相关产品推荐

