前言:
当前你们对“netdecimal声明”可能比较注重,姐妹们都想要分析一些“netdecimal声明”的相关资讯。那么小编同时在网摘上搜集了一些对于“netdecimal声明””的相关内容,希望小伙伴们能喜欢,同学们快快来了解一下吧!值类型:
如果数据类型在它自己的内存分配中存储数据,则该数据类型就是“值类型”。 值类型包括:
所有数字数据类型
Boolean 、Char 和 Date
所有结构,即使其成员是引用类型
枚举,因为其基础类型总是 SByte、Short、Integer、Long、Byte、UShort、UInteger 或 ULong
每个结构是值类型,因此,即使它包含引用类型成员。 因此,值类型 (如 Char 和 Integer 由 .NET framework 结构实现。
可以通过使用保留关键字(例如 Decimal)声明值类型。 也可以使用 New 关键字初始化值类型。 这对于值类型有一个带参数的构造函数的情况尤为有用。此示例有 Decimal(Int32, Int32, Int32, Boolean, Byte) 构造函数,它从提供的部分生成新的 Decimal 值。
引用类型:
“引用类型”包含指向存储数据的其他内存位置的指针。 引用类型包括:
String
所有数组,即使其元素是值类型
类类型,如 Form
委托
类是一种“引用类型”。 因此,诸如 Object 和 String 之类的引用类型都受 .NET Framework 类支持。 请注意,每个数组都是一种引用类型,即使其成员是值类型。
值类型的变量保存到内存的线程的堆栈中;而引用类型的变量会保存到托管堆中,其中这里说的托管堆又可以分为GC堆、LOH堆。其中GC堆、LOH堆是根据创建的对象的大小来分配到不同的堆中的,判断的平衡点是这个对象是否超过85000字节,如果小于85000字节,则系统把对象保存到GC堆中;如果大于或者等于85000字节,则系统保存到LOH堆中(一般LOH创建的对象是数组)。所以我们常说的托管堆就是指GC堆和LOH堆的集合。当然,我这里写的也不是完全正确的,其实在c#中创建对象是一个非常复杂过程,当中会涉及到系统程序域、共享程序域和默认程序域等等。
标签: #netdecimal声明