The*_*Ace 67 c# namespaces class
这是我的程序,类使用它被称为Time2我将引用添加到TimeTest我一直得到错误'Time2'是'命名空间'但是像'类型'一样使用
有人可以告诉我这个错误是什么以及如何解决它?
namespace TimeTest
{
class TimeTest
{
static void Main(string[] args)
{
Time2 t1 = new Time2();
}
}
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 97
我怀疑你至少有两次同样的问题.
这里:
namespace TimeTest
{
class TimeTest
{
}
Run Code Online (Sandbox Code Playgroud)
...你声明一个与它所在的命名空间同名的类型.不要这样做.
现在你显然遇到了同样的问题Time2
.我怀疑你是否补充:
using Time2;
Run Code Online (Sandbox Code Playgroud)
到你的using
指令列表,你的代码将编译.但请拜托,请解决更大的问题:有问题的名字选择.(按照上面的链接查找有关为什么这是一个坏主意的更多细节.)
(另外,除非你真的对编写基于时间的类型感兴趣,否则我建议你不要这样做......我说那是一个确实做到这一点的人.使用内置功能,或者第三个像嗯,我这样的派对图书馆.正确地处理日期和时间是非常毛茸茸的.:)
小智 15
namespace TestApplication // Remove .Controller
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
}
}
Run Code Online (Sandbox Code Playgroud)
从namepsace中删除控制器字
与相class TimeTest
冲突namespace TimeTest
。
如果您无法更改命名空间和类名:
为类类型创建别名。
using TimeTest_t = TimeTest.TimeTest;
TimeTest_t s = new TimeTest_t();
Run Code Online (Sandbox Code Playgroud)
所有答案都表明了原因,但有时更大的问题是确定定义不正确名称空间的所有位置。使用像Resharper这样使用文件夹结构自动调整命名空间的工具,很容易遇到这个问题。
您可以通过使用以下正则表达式在项目/解决方案中搜索来获取创建问题的所有行:
namespace .+\.TheNameUsedAsBothNamespaceAndType
Run Code Online (Sandbox Code Playgroud)