102

我的程序使用一个名为Time2. 我添加了参考,TimeTest但我不断收到错误,'Time2' is a 'namespace' but is used like a 'type'.

有人可以告诉我这个错误是什么以及如何解决它吗?

namespace TimeTest
{
  class TimeTest
  {
    static void Main(string[] args)
    {
        Time2 t1 = new Time2();
    }
  }
}
4

9 回答 9

149

我怀疑你至少有两次遇到同样的问题。

这里:

namespace TimeTest
{
    class TimeTest
    {
}

...您正在声明一个与它所在的命名空间同名的类型。不要那样做。

现在你显然有同样的问题Time2。我怀疑如果你添加:

using Time2;

到您的using指令列表中,您的代码将编译。但是请,请,请解决更大的问题:有问题的名称选择。(点击上面的链接,了解为什么这是一个坏主意的更多细节。)

(此外,除非您真的对编写基于时间的类型感兴趣,否则我建议您不要这样做……我说的是确实这样做的人。使用内置功能或第三党图书馆,例如,嗯,的。正确处理日期和时间令人惊讶地毛茸茸。:)

于 2013-02-21T16:49:22.013 回答
23
namespace TestApplication // Remove .Controller
{
    public class HomeController : Controller
    {
       public ActionResult Index()
        {
            return View();
        }
    }
}

从名称空间中删除控制器字

于 2016-11-17T01:44:18.767 回答
6

所有答案都指出了原因,但有时更大的问题是确定所有定义不正确命名空间的位置。使用像 Resharper 这样使用文件夹结构自动调整命名空间的工具,很容易遇到这个问题。

您可以通过使用以下正则表达式在项目/解决方案中搜索来获取创建问题的所有行:

namespace .+\.TheNameUsedAsBothNamespaceAndType
于 2020-10-03T07:57:18.487 回答
3

如果您正在开发一个大型应用程序并且无法更改任何名称,您可以键入 a.以从命名空间中选择您想要的类型:

namespace Company.Core.Context{
  public partial class Context : Database Context {
    ...
  }
}
...

using Company.Core.Context;
someFunction(){
 var c = new Context.Context();
}
于 2020-06-08T22:24:08.210 回答
2

我在名为“Response”的文件夹中创建了一个类“Response.cs”时遇到了这个问题。所以 VS 正在捕获new Response ()as 文件夹/命名空间。

所以我将类名更改为 StatusResponse.cs 并调用new StatusResponse().This 解决了这个问题。

于 2020-09-30T03:46:26.510 回答
1

class TimeTest相冲突namespace TimeTest

如果您无法更改命名空间和类名:

为类类型创建别名。

using TimeTest_t = TimeTest.TimeTest;

TimeTest_t s = new TimeTest_t();
于 2021-03-17T14:11:33.160 回答
0

请检查您的类和命名空间名称是否相同...

当命名空间和类名相同时会发生这种情况。当你想使用命名空间时,做一件事写命名空间的全名。

using Student.Models.Db;

namespace Student.Controllers
{
    public class HomeController : Controller
    {
        // GET: Home
        public ActionResult Index()
        {
            List<Student> student = null;
            return View();
        }
    }
于 2019-05-24T02:32:22.360 回答
0

如果您在这里解决与 EF Core 相关的问题,请参考以下提示:

命名迁移的子文件夹与数据库上下文的名称不同

这将为您解决。

我的错误是这样的: ModelSnapshot.cs error CS0118: Context is a namespace but is used like a type

于 2022-01-05T20:16:36.113 回答
-5

如果错误是

第 26 行:
第 27 行:@foreach(模型中的客户客户)第 28 行:{ 第 29 行:

给出完整的名称空间
,如 @foreach(模型中的 Start.Models.customer 客户)

于 2019-12-09T09:58:16.497 回答