C#中的最大整数用法

时间:2015-11-07 08:45:08

标签: c# memory heap-memory

我即将使用Data.Annotations库和[Range(1,int.maxValue)]属性。我正在讨论 int.maxValue使用,因为每个类我都会有很多这样的属性,而且我不想添加到内存 int。每次调用它时都是maxValue。

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

1 个答案:

答案 0 :(得分:0)

  

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

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

public void X(int a)
{
}

X(int.MaxValue); // copy, copy, copy, copy!