C#中的最大整数使用量

本文关键字:整数 使用量 | 更新日期: 2023-09-27 18:20:54

我将使用Data.Annotations库和[Range(1,int.maxValue)]属性。我对int.maxValue的用法感到不满,因为每个类都有很多这样的属性,我不想每次调用它时都将添加到内存int_maxValue中。

我猜测它不会是重复的值,因为int是一个结构,CLR将只存储指向堆中某个值的链接。我说得对吗?

C#中的最大整数使用量

所以,每次我调用int.MaxValue-时,我都会分配额外的4堆中的字节,对吧?

实际上,当您将int.MaxValue作为参数提供给整个属性时,它会分配内存。由于值类型是通过值传递的,因此它们被复制,而不是创建对同一对象的引用。

public void X(int a)
{
}
X(int.MaxValue); // copy, copy, copy, copy!