C#中静态的结构体,存储在什么地方,是栈还是堆,还是什么???

2025-02-05 16:34:14
推荐回答(3个)
回答1:

“值类型存储在栈中, 引用类型存储在堆中”
这句话的前半句是有争议的,
“变量的值是在它声明的位置存储的,假如一个类中有一个int类型的实例变量,那么在这个类的任何对象中,该变量的值总是和对象中的其他数据在一起,也就是在堆上,只有局部变量(方法内部声明的变量)和方法参数在栈上。而对于C#2以及更高版本,很多局部变量并不完全存放在栈中”引用-《C# in depth》及译本《深入理解C#》

回答2:

值类型存储在栈中, 引用类型存储在堆中. 这与静态与否没关系, 静态与否只影响对象的初始化.

public static struct Student
{
    public string Name {get; set;}
}

// main method
Student stu = new Student();
stu.Name = "Hello World";

其实和class看起来差不多.

回答3:

结构体属于值类型,存储栈中