C# 尝试编译时未找到命名空间错误
编辑:更改类名或名称空间名称以使名称空间和类不具有相同的名称不会解决此问题。 我有一个超级简单的代码: Program.cs:C# 尝试编译时未找到命名空间错误,c#,.net,mono,C#,.net,Mono,编辑:更改类名或名称空间名称以使名称空间和类不具有相同的名称不会解决此问题。 我有一个超级简单的代码: Program.cs: using System; using CodeCleaner; class Program { private static void Main(string[] args) { Console.WriteLine("DocTypeChecker instantiated"); var codeCleaner =
using System;
using CodeCleaner;
class Program
{
private static void Main(string[] args)
{
Console.WriteLine("DocTypeChecker instantiated");
var codeCleaner = new CodeCleaner.CodeCleaner();
}
}
CodeCleaner.cs:
using System;
namespace CodeCleaner
{
public class CodeCleaner
{
public CodeCleaner()
{
Console.WriteLine("CodeCleaner instantiated");
}
}
}
当我在运行$csc Program.cs
时尝试编译时,这会产生以下错误:
Program.cs(4,7):错误CS0246:找不到类型或命名空间名称“CodeCleaner”(是否缺少using指令或程序集引用?)
我肯定没有遗漏CodeCleaner的using指令,但它对
汇编参考的意义我不知道。在这种情况下,网络上的其他解决方案对我没有帮助。有人知道这里的问题吗?运行csc Program.cs
不会编译CodeCleaner.cs,因此程序集将缺少CodeCleaner类和命名空间。使用csc Program.cs CodeCleaner.cs
应该可以做到这一点。我认为名称空间和类名的问题是相同的。这不是问题所在。我尝试将名称空间名称更改为NCodeCleaner
,但问题仍然存在(然后显示名称空间名称“NCodeCleaner”未找到
),因此出现了相同的问题。CodeCleaner与程序在同一程序集中吗?如果不是,则程序集需要引用具有CodeCleaner的程序集。如果命名空间和类名相同,则可能会导致问题,但在这种情况下,他不会将名称空间和类名一起完全使用,如:new CodeCleaner.CodeCleaner()
只需为您的程序使用相同的名称空间,classI将对此进行尝试并相应更新。但是假设我想添加多个文件,那么假设我有10个名称空间和类,我必须列出我使用的所有名称空间文件吗?@erol\u smsr否,如果您还需要编译子目录,您可以使用csc*.cs
或csc-recurse:.cs
。谢谢!我刚刚在.NET文档中找到了它,现在看到了你的评论。这解决了问题:)