编译器在名称空间/二进制文件中搜索变量名的顺序是什么

本文关键字:变量名 搜索 顺序 是什么 二进制文件 空间 编译器 | 更新日期: 2023-09-27 18:26:52

我只是好奇这是怎么回事。似乎找不到太多细节。可能在我的搜索中没有正确地表达这个问题。但基本上,编译器是如何解析名称的?它按什么顺序搜索C#文件开头的using语句中列出的名称空间?

编译器在名称空间/二进制文件中搜索变量名的顺序是什么

按照指定的顺序。使用指令实际上是"愚蠢的",因为编译器试图在添加的每个命名空间之前使用不合格的类型。如果没有完全限定的类型匹配,则会得到一个未找到的错误。如果有多个匹配,则会得到一个不明确的类型错误。

从CLR通过C#第3版(链接到第4版):

使用C#Using指令是完全可选的;欢迎您填写完整的一个类型的限定名称(如果您愿意)。C#using指令指示编译器尝试在类型名前面加上不同的前缀,直到找到匹配项为止。