c# - 类方法所需的资源

标签 c# class memory

<分区>

Possible Duplicate:
Does having lots of methods on a class increase the overhead of that class's object?

如果我有一个类:

public class Example
{
   int someInt1 = 0;
   ..
   int someInt10 = 0;

   string somestring1 = "1111";
   ...
   string somestring10 = "10101010";

   public Method1()
   {
      // do stuff
   }

   public Method2()
   {
      // do stuff
   }

   ...

   public Method10()
   {
     // do stuff
   }
}

我有以下内容:

Example Ex1 = new Example();
Example Ex2 = new Example();
...
Example Ex10 = new Example10();

我很清楚,每个类中的 10 个 int 和 10 个字符串都需要分配资源。 Int 在堆栈上,字符串指针在堆栈上,引用到堆(或者我相信如此)。

我很好奇类中包含的方法。由于这是编译的,是否只有一组资源(我猜是内存)用于方法,然后这将在类“Example”的所有实例之间共享,还是每个实例都会为方法代码占用内存?

最佳答案

在 32 位系统上,每个 Example 实例的成本是 4 个指针 + 2 个 int = 24 个字节。字符串是共享的(多次引用)。

关于c# - 类方法所需的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12102680/

相关文章:

c# - 将 JSON 转换为对象,然后根据对象类型执行不同的操作

c# - 更新面板内的文件上传丢失了 asp.net 中的文件

c++ - 如何初始化作为类成员的数组?

javascript - 为什么类不适用于 Angular 指令?

asp.net - 为什么 ASP.NET Web 服务占用如此多的内存?

c# - WPF - 如何向标签添加效果(如阴影)

c# - web.config/Global.asax 中的自定义错误处理不处理不存在的目录

java - 关于 Class.isInstance 的困惑

pointers - 如何检查两个变量是否指向内存中的同一个对象?

c - 如何调试内存随机变化问题