名称空间是IL代码的部分,还是一种元数据
名称空间是IL代码的一部分,还是一种元数据?
例如,我有代码:
那么生成的IL文件当中,
(1)是不是有两个类分别叫做a.b.C1和a.b.C2?
(2)还是有一个元数据叫做a.b,然后里面包含了一个C1和一个C2类型?
如果是(1),那么其他的工程引用这个assembly的时候,using a.b,然后调用C1,那么编译器自动把C1扩展为a.b.C1?
如果是(2),那么namespace这个东西只是给CLR用的吗?
求高人指点
------解决思路----------------------
有两个类分别叫做a.b.C1和a.b.C2
------解决思路----------------------
IL中有a.b.C1这种东西?还头一次听说
所有的命名应该都不见了才对,变成只有机器能识别的编号了
什么...的,只是你编码时候的一种形式
只要代码知道被引用的对象指向哪里不就得了,跟有几个点没有关系
------解决思路----------------------
元数据...
------解决思路----------------------
程序集包含:程序集清单,元数据,IL和资源。元数据包含程序集里类和方法的信息(比如名称,参数等等。);IL是编译后的代码部分。
命名空间,这个其实只是用于代码组织。
例如,我有代码:
namespace a{
namespace b{
class C1...
class C2...
}
}
那么生成的IL文件当中,
(1)是不是有两个类分别叫做a.b.C1和a.b.C2?
(2)还是有一个元数据叫做a.b,然后里面包含了一个C1和一个C2类型?
如果是(1),那么其他的工程引用这个assembly的时候,using a.b,然后调用C1,那么编译器自动把C1扩展为a.b.C1?
如果是(2),那么namespace这个东西只是给CLR用的吗?
求高人指点
------解决思路----------------------
有两个类分别叫做a.b.C1和a.b.C2
------解决思路----------------------
IL中有a.b.C1这种东西?还头一次听说
所有的命名应该都不见了才对,变成只有机器能识别的编号了
什么...的,只是你编码时候的一种形式
只要代码知道被引用的对象指向哪里不就得了,跟有几个点没有关系
------解决思路----------------------
元数据...
------解决思路----------------------
程序集包含:程序集清单,元数据,IL和资源。元数据包含程序集里类和方法的信息(比如名称,参数等等。);IL是编译后的代码部分。
命名空间,这个其实只是用于代码组织。