[英].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.