我的程序使用一个名为
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();
}
}
}
我怀疑你有同样的问题至少两次。
这里:
namespace TimeTest
{
class TimeTest
{
}
...您正在声明一个与其所在命名空间同名的类型。不要这样做。
现在您显然也遇到了同样的问题
Time2
。我怀疑如果你添加:
using Time2;
到您的
using
指令列表,您的代码将编译。但请、请、请解决更大的问题:名字的选择有问题。 (点击上面的链接了解更多关于为什么这是一个坏主意的细节。)
(此外,除非您真的对编写基于时间的类型感兴趣,否则我建议您不要这样做......并且我说,作为一个 does 确实这样做的人。使用内置功能,或第三方库,例如,嗯,我的。正确处理日期和时间是令人惊讶的毛茸茸的。:)
namespace TestApplication // Remove .Controller
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
}
}
从名称空间中删除控制词
class TimeTest
与namespace TimeTest
相冲突。
如果无法更改命名空间和类名:
为类类型创建别名。
using TimeTest_t = TimeTest.TimeTest;
TimeTest_t s = new TimeTest_t();
所有答案都表明了原因,但有时更大的问题是识别所有定义不正确名称空间的位置。使用像 Resharper 这样使用文件夹结构自动调整命名空间的工具,很容易遇到这个问题。
您可以通过使用以下正则表达式在项目/解决方案中搜索来获取创建问题的所有行:
namespace .+\.TheNameUsedAsBothNamespaceAndType
如果您正在开发大型应用程序并且无法更改任何名称,则可以键入
.
从命名空间中选择所需的类型:
namespace Company.Core.Context{
public partial class Context : Database Context {
...
}
}
...
using Company.Core.Context;
someFunction(){
var c = new Context.Context();
}
当我在名为“Response”的文件夹中创建一个类“Response.cs”时,我遇到了这个问题。所以 VS 将
new Response ()
捕获为文件夹/命名空间。
所以我将类名更改为 StatusResponse.cs 并调用
new StatusResponse()
。这解决了问题。
如果您在这里遇到 EF Core 相关问题,请参阅以下提示:
将迁移的子文件夹命名为与数据库上下文名称不同的名称。
这将为您解决。
我的错误是这样的: ModelSnapshot.cs 错误 CS0118:上下文是命名空间,但像类型一样使用
出现这种情况是因为文件夹和类的命名相同。因此,命名空间和类名之间存在混淆。
namespace CSEData.Scrapper.UnitOfWork
{
public class UnitOfWork
{
Task<int> Commit(){};
void Dispose(){};
}
}
看看命名空间,它是“UnitOfWork”。和 看一下类名,也是“UnitOfWork” 所以我已将命名空间名称(在我的例子中为文件夹名称)更改为“UnitOfWorks”
请检查您的类和命名空间名称是否相同...
当命名空间和类名相同时,就会发生这种情况。 当你想使用命名空间时,做一件事写下命名空间的全名。
using Student.Models.Db;
namespace Student.Controllers
{
public class HomeController : Controller
{
// GET: Home
public ActionResult Index()
{
List<Student> student = null;
return View();
}
}
尝试避免为实体提供相同的命名空间名称,例如,如果您使用如下所示的名称空间,并且尝试使用产品作为实体名称来调用实体,您将收到错误
下面是名称空间,某处是您的代码
Company.Project.APPLICATION.Product.Commands
下面的代码将为您提供“产品”是一个“命名空间”,但使用方式类似于“类型”
Product product = new Product()
因此请尝试重命名您的实体或名称空间。
namespace Test //Remove .Controller
{ 公共类 HomeController :控制器 { 公共 IActionResult 索引() { 返回视图(); } } }
//这是个好主意..
你犯了一个错误,因为你的命名空间和类名是相同的。
namespace MySpace
{
class MyClass
{
}
要解决此问题,您需要使用 MySpace 命名空间内定义的实际类型,假设您打算使用其中定义的类或类型。例如:
MySpace.MyClass myUser = new MySpace.MyClass();
如果错误是
26号线:
第 27 行:@foreach(模型中的客户 customer)
第 28 行:{
第 29 行:
给出完整的名称空间
喜欢
@foreach(模型中的Start.Models.customer客户)