c# - 在 C# 中,当您只提供命名空间中的最后一个“单词”时,引用类如何工作?
问题描述
using A.B;
using X.Y;
public void Get(B.C c) {
}
这种导入机制如何在 C# 中工作?(方法上的BC)。我在哪里可以找到有关它的一些文档?
当我尝试以这种方式导入其他包时,它不起作用......
如果我去“B”,骑手。我得到一堆代码洞察选项......(AB是我的代码)但如果我输入“Y”。我没有得到任何选项(XY)是库代码。似乎代码洞察力在包含我的代码的命名空间中起作用。
更新了使用 using 而不是 import 的问题。
解决方案
namespace_or_type_name具有以下四种形式之一:
I
I<A1, ..., Ak>
N.I
N.I<A1, ..., Ak>
然后1:
对于每个命名空间 N,从出现 namespace_or_type_name 的命名空间开始,继续每个封闭的命名空间(如果有),并以全局命名空间结束,评估以下步骤,直到找到一个实体:
...
否则,如果
N
包含具有名称的可访问类型I
...否则,namespace_or_type_name指的是使用给定类型参数构造的类型。
因此,如果您的代码在 namespace中,并且nor中A.Q.R
没有B
命名空间,那么最终它将解析为. (注意,这里不相关)R
Q
A.B.C
using A.B;
1我试图在这里删除许多与此案例无关的警告,但实际上,您确实需要查看完整的规范以获取所有详细信息
推荐阅读
- ios - RPScreenRecorder.shared().isAvailable 始终为 false
- javascript - Promise {
} on bcrypt - python - 对 pandas 数据框项的迭代
- python - Why my data loop multiple times when I created dictionary?
- excel - Time Calculation Type Mismatch
- amazon-cloudfront - CloudFront - How to forward all request headers to the origin
- python - Selenium can't find id element in
- javascript - 如何在网页上只有一个人,其他人在等待屏幕上
- r - 如何一步修复多个 .json 文件中的错误?
- php - yii2 会话超时后将任何页面重定向到登录页面