C# 代码量是否会使数据结构变大?

C# 代码量是否会使数据结构变大?,c#,data-structures,size,C#,Data Structures,Size,我有一个项目的arraylist,其中可能只有十个变量。但是,这些项目有一个很好的代码位,我想添加更多。我很好奇这将如何影响我的结构的大小。我的直觉告诉我,每一个都有一堆,但随着争论和我可能没有考虑过的东西的流传,我不确定。那么,代码大概会增加多少到我的数据结构中呢?代码不会增加结构的大小 与类关联的代码通常不会在每个实例中重复,因此添加代码不会影响arraylist的大小 即使将代码与数据放在同一组大括号中,编译器也会将其分离出来,并将其放在不同的内存部分 这样,您只需要代码的一个副本—不必为

我有一个项目的arraylist,其中可能只有十个变量。但是,这些项目有一个很好的代码位,我想添加更多。我很好奇这将如何影响我的结构的大小。我的直觉告诉我,每一个都有一堆,但随着争论和我可能没有考虑过的东西的流传,我不确定。那么,代码大概会增加多少到我的数据结构中呢?

代码不会增加结构的大小

与类关联的代码通常不会在每个实例中重复,因此添加代码不会影响arraylist的大小

即使将代码与数据放在同一组大括号中,编译器也会将其分离出来,并将其放在不同的内存部分

这样,您只需要代码的一个副本—不必为使用它的每个项目创建一个新副本


只有在非常大的项目中,编译代码的实际大小才会成为问题;通常,它并不比源文本大多少。在小型程序中,通常是几百K或最多一到两兆欧。在现代机器上不值得担心。

代码不存储在堆上


无论创建多少个对象,代码都只能放在一个位置。

对象所使用的类成员函数的存储方式不同,对对象的大小没有影响。其中,类中的as数据成员将是对象的一部分,如果更改变量的类型,对象大小将更改

例:


每个对象都没有自己的堆栈。堆栈是每个线程/进程,而不是每个对象。

对象实例的大小(主要)是其数据成员的总和。函数成员不是按实例存储的,对实例大小没有影响

您的程序每个线程有一个堆栈。调用函数时,为该函数的每个参数和变量保留堆栈内存,并在其返回时释放

如果在函数中实例化对象而不使用新对象,则对象将存储在堆栈上。如果使用new,则堆栈上只存储引用,而实例本身存储在堆上


:)

事实上,编译后的代码通常比源代码表示形式小得多。现在我想起来了,说到C#,你肯定是对的。我更习惯于C++,其中一个杂散的“CUT”可以以惊人的代码量编译和链接。
class Test
{
    1. member functions

    //it does not matter how many functions you have, this section does not contribute
    // to object size

    2. member variables
    //this contributes to the object size, define an int or  double etc will change the object size
}