gpt4 book ai didi

c# - 全局与成员函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:17:11 25 4
gpt4 key购买 nike

我最近一直在研究 C++,想知道为什么会有这么多全局函数。然后我开始考虑用 c# 编程以及如何存储成员函数,所以我想我的问题是我是否有:

public class Foo {    public void Bar() { ... }}

然后我做了一些愚蠢的事情,比如将 1,000,000 个 Foo's 添加到列表中;这是否意味着我有 1,000,000 个 Foo 对象位于内存中,每个对象都有自己的 Bar() 函数?还是发生了更聪明的事情?

谢谢。

最佳答案

没有,只有一个例子。一个类的所有实例都指向一个对象,该对象包含所有采用隐式第一个参数的实例方法,亲切地称为 this。当您在实例上调用实例方法时,该实例的 this 指针将作为第一个参数传递给该方法。这就是该方法了解该实例的所有实例字段和属性的方式。

有关详细信息,请参阅 CLR via C# .

当然,virtual 方法使这变得复杂。通过 C# 的 CLR 将为您阐明区别,如果您对此主题感兴趣,强烈推荐。无论哪种方式,每个实例方法仍然只有一个实例。问题在于如何解决这些方法。

关于c# - 全局与成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4300737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com