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