繁体   English   中英

.net6 需要完全限定的 class 名称?

[英].net6 requiring fully qualified class name?

我在 Visual Studio 中有一个带有 program.cs 和 Dog.cs 的解决方案 (ConsoleApp6) 在 program.cs 中我正在实例化 Dog.cs。 多年来,我一直是 .net 程序员,但在切换到 program.cs 中的 .NET 6 的第一天,“Dog”未被识别(就像它在旧的 .net 中一样),除非我使用 MyNameSpaceHere.Dog 对其进行限定,即使它与 program.cs 完全相同的命名空间。

ConsoleApp6.Dog dog = new ConsoleApp6.Dog(); //works

Dog dog = new Dog();  //does not

错误消息说:找不到类型或命名空间“Dog”。 即使我遵循修复并让 VS 创建一个新的 class 狗,它也无法识别。 显然我在这里犯了一些新手错误???

您所看到的是“顶级语句”功能的结果

添加了支持,这样您就可以“只编写代码”而不必声明名称空间和包含Main方法的Program class。

结果是,此“顶层”中的所有内容都不是任何命名空间的一部分,这意味着如果您不包括using在文件.

因此,您的解决方案是在文件顶部添加以下内容:

using ConsoleApp6;

Dog dog = new Dog();  // works now

注意:这是 C#9 功能,而不是 .NET6 功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM