C# “名称空间”,但与“类型”一样使用
这是我的程序类使用它被称为Time2 我已将引用添加到TimeTest 我不断发现错误“Time2”是一个“名称空间”,但它的用法类似于“类型” 有人能告诉我这个错误是什么以及如何修复它吗C# “名称空间”,但与“类型”一样使用,c#,class,namespaces,C#,Class,Namespaces,这是我的程序类使用它被称为Time2 我已将引用添加到TimeTest 我不断发现错误“Time2”是一个“名称空间”,但它的用法类似于“类型” 有人能告诉我这个错误是什么以及如何修复它吗 namespace TimeTest { class TimeTest { static void Main(string[] args) { Time2 t1 = new Time2(); } } } 我怀疑你至少有两次遇到同样的问题 在这里: 。。。您
namespace TimeTest
{
class TimeTest
{
static void Main(string[] args)
{
Time2 t1 = new Time2();
}
}
}
我怀疑你至少有两次遇到同样的问题 在这里: 。。。您正在使用与其所在的命名空间相同的名称声明一个类型 很明显,你在Time2上也有同样的问题。我怀疑如果你加上:
using Time2;
在使用指令列表中,您的代码将被编译。但是请,请,请解决更大的问题:名字的选择有问题。点击上面的链接,了解为什么这是个坏主意的更多细节
另外,除非你真的对写基于时间的类型感兴趣,否则我建议你不要这么做。。。我要说的是,作为一个真正做到这一点的人。使用内置功能或第三方库,例如,um。正确处理日期和时间令人惊讶地棘手
namespace TestApplication // Remove .Controller
{
public class HomeController : Controller
{
public ActionResult Index()
{
return View();
}
}
}
从名称空间中删除控制器字请检查您的类和名称空间名称是否相同
当名称空间和类名相同时会发生这种情况。
当您想要使用名称空间时,请做一件事,写下名称空间的全名
using Student.Models.Db;
namespace Student.Controllers
{
public class HomeController : Controller
{
// GET: Home
public ActionResult Index()
{
List<Student> student = null;
return View();
}
}
如果错误是
第26行:
第27行:@foreach模型中的客户
第28行:{
第29行:
给全名空格
喜欢
@模型中的foreach Start.Models.customer如果您正在处理一个大型应用程序,并且无法更改任何名称,则可以键入a。要从命名空间中选择所需的类型,请执行以下操作:
namespace Company.Core.Context{
public partial class Context : Database Context {
...
}
}
...
using Company.Core.Context;
someFunction(){
var c = new Context.Context();
}
我在名为Response的文件夹中创建了一个类Response.cs时遇到了这个问题,因此VS将新响应捕获为文件夹/名称空间
using Student.Models.Db;
namespace Student.Controllers
{
public class HomeController : Controller
{
// GET: Home
public ActionResult Index()
{
List<Student> student = null;
return View();
}
}
因此,我将类名更改为StatusResponse.cs,并调用了new StatusResponse。这解决了问题。所有答案都指出了原因,但有时更大的问题是识别定义不正确命名空间的所有位置。使用诸如Resharper之类的工具,可以使用文件夹结构自动调整命名空间,这是非常困难的呃容易遇到这个问题 通过使用以下正则表达式在project/solution中搜索,可以获得创建问题的所有行:
namespace .+\.TheNameUsedAsBothNamespaceAndType
类TimeTest与命名空间TimeTest冲突
如果无法更改命名空间和类名:
为类类型创建别名
using TimeTest_t = TimeTest.TimeTest;
TimeTest_t s = new TimeTest_t();
您有类型TimeTest.TimeTest和其他类似的类型。不要这样做。如果不将类型命名为与其命名空间相同的名称,则会产生歧义错误。有关更多信息,请参阅:您确实应该在此问题中添加一个精简的Time2声明,因为这可能是问题所在。很可能您在名为Time2The的命名空间中定义了Time2Ace,请下次尝试提供再现问题的最小示例。我已删除了不必要的行,请添加Time2定义以使其完整。标记为“非答案”,我在没有阅读问题时编辑了它。当您尝试从Microsoft.AspNetCore.Mvc命名空间中的控制器类继承时,如果您的文件夹被调用d控制器,而不是控制器,您的最终名称空间为控制器,由于名称空间的名称,它会引发错误。此答案是正确的,并帮助我发现我在项目中为文件夹控制器指定了错误的名称。这解决了我的问题。感谢您提供了非常清晰的答案!我更改了名称空间名称并修复了pr问题。这真的很奇怪,因为这是VS2019生成的默认代码。@TimMelton:如果您选择了名称空间名称TimeTest,然后选择了类名TimeTest,那么这将是默认代码。您必须同时选择这两个名称…我现在明白了问题所在。我正在观看的视频让我创建了一个名为Controller的文件夹,以放置e Controller文件。这是命名空间中的Controller的来源。VS自动将文件夹名称附加到命名空间中。在命名空间后删除单词Controller可以解决问题。这解决了问题!谢谢。有时Visual Studio会显示一些令人沮丧的误导性错误消息。在我的情况下,我设法拉了一个参考一个旧图书馆,它有一个重叠的名字问题,我以为我在几年前就用火杀死了它。