如果我创建一个包含A类的10个对象的数组,那么对象方法是否会在每个对象中出现(在程序集中)10次,或者只是方法代码的单个实例,它将用于不同对象的不同数据?
答案 0 :(得分:3)
不,代码属于类,只会表示一次。数组和对象在执行时间之前甚至不存在 - 假设数组的大小可能不同,则可执行文件不可能包含重复“足够”次数的代码。
请记住,代码本身对所有对象保持不变 - 即使在内存中复制代码也没有意义,更不用说在文件中了。 (在某些情况下,JITted代码可能会有所不同,以考虑基类和派生类之间的内联差异,但据我所知,Microsoft CLR不会发生这种情况。)
答案 1 :(得分:0)
可执行文件中只存在该方法的一个实例。当调用该方法时,它将传递一个指向您想要处理的特定对象的数据成员的指针。