Ahm*_*gle 13 .net c# system.reflection
C#中的全名分隔符是句点字符(.).例如System.Console.Write.
这是在某个地方定义的Path.PathSeperator,还是在.NET反射类中进行了硬编码?
(例如Type.FullName,Type.Namespace + "." + Type.Name假设它不会改变?
Mar*_*ell 15
基本上:语言规范.但实际上,Type.FullName使用BCL定义而不是C#定义 - 有趣的是他们不同意.例如:
namespace X {
public class Y {
public class Z {}
}
}
Run Code Online (Sandbox Code Playgroud)
对C#来说,Z是X.Y.Z; 它是BCL X.Y+Z.泛型的表示也发生了变化 - BCL使用后标记和数字而不是尖括号.我相信 BCL使用CLI的类型格式(它有一个单独的规范),但是如果你想一想:它不需要这样做(除了在反射 - 发射期间).
AFAIK,这些分隔符不是通过任何类似的暴露Path.PathSeparator- 但正如你所说,硬编码到Typeetc类中.
| 归档时间: |
|
| 查看次数: |
711 次 |
| 最近记录: |