我意识到包含“-”字符的文件夹(作为命名空间提供者)确实获得了与预期不同的命名空间。
例如,我观察到嵌入资源:
AssemblyName/lib/font/source-sans-pro/source-sans-pro.css
Run Code Online (Sandbox Code Playgroud)
最后将有以下命名空间:
AssemblyName.lib.font.source_sans_pro.source-sans-pro.css
Run Code Online (Sandbox Code Playgroud)
因此,对于文件夹,而不是文件(为什么?),命名空间发生变化,使得“-”被替换为“_”下划线字符。
不幸的是我找不到任何描述这种行为的官方参考资料。任何人都可以提供一些有关此行为的参考吗?为什么文件夹命名空间会改变?为什么不是文件的名称空间?
标识符中不允许使用连字符,命名空间就是标识符。如果你仔细想想,原因很简单 -x-y就是-带有操作数x和的二元运算符y。试图让它成为一个有效的标识符将是非常糟糕的。
允许的标识符的完整描述位于 C# 5 规范的第 2.4.2 节中。当然,您的嵌入式资源最终与 CLI 规范比与 C# 规范更相关,但它具有类似的规则 - 定义(在 ECMA-335 中)以遵循Unicode 3.0 标准技术报告 15 的附件 7 的规则。
| 归档时间: |
|
| 查看次数: |
1811 次 |
| 最近记录: |