繁体   English   中英

为什么我不能隐式解决?

[英]Why can't I resolve implicitly?

我总是右键单击以隐式解析名称空间。

但是对于某些名称空间,我不能隐式地解决它,而必须显式地解决它,从而导致像program1.logging.ErrorLogger.ErrorArise这样的代码。 为什么我不能隐式解决?

检查这个小提琴: https : //dotnetfiddle.net/6Px9BQ

问题是,有两个或多个共享相同名称的类,因此无法隐式知道要引用的名称,因此您需要通过提供其完整的名称空间名称来明确指定名称。

如果您不想一直指定长限定词,可以这样缩短它们:

Apple.Berry.Cheese.Cake cake = new Apple.Berry.Cheese.Cake();

缩短:

using abc = Apple.Berry.Cheese;

abc.Cake cake = new abc.Cake();

Visual Studio为您提供了很多功能,并且可以轻松地使您跳过一些概念。 提供的工具之一是,您可以右键单击以在代码文件的顶部添加一个using指令,该指令向编译器发出信号,告知编译器类名称在编译时的含义。

但是,如果两个名称空间具有相同的类名,并且两个名称空间都在同一类中使用,则必须在每种情况下都明确告诉编译器使用什么。

暂无
暂无

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

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