【发布时间】:2019-08-29 19:44:43
【问题描述】:
编辑:更改类名或命名空间名称以使命名空间和类不具有相同名称并不能解决此问题。
我有这个超级简单的代码:
程序.cs:
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 指令,但我不知道 assembly reference 的含义。在这种情况下,网络上的其他解决方案对我没有帮助。有人知道这里的问题吗?
【问题讨论】:
-
我认为问题是命名空间和类名的名称相同。
-
这不是问题。我尝试将命名空间名称更改为
NCodeCleaner,但问题仍然存在(然后显示为namespace name 'NCodeCleaner' not found),所以同样的问题。 -
CodeCleaner 和 Program 在同一个程序集中吗?如果不是,则程序的程序集需要引用具有 CodeCleaner 的程序集。
-
如果命名空间和类名相同可能会导致麻烦,但在这种情况下他不会完全使用命名空间和类名,例如:
new CodeCleaner.CodeCleaner() -
只为您的 Program 类使用相同的命名空间