C# 值和引用类型的内存管理
我搜索了C#中的C# 值和引用类型的内存管理,c#,.net,memory-management,heap-memory,stack-memory,C#,.net,Memory Management,Heap Memory,Stack Memory,我搜索了C#中的引用类型与值类型以及堆栈和堆中的数据分配 从这些来源,我得出以下结论: 引用类型的值存储在堆上,该值的地址存储在堆栈上 值类型存储在堆栈上 运行函数的局部变量存储在堆栈中 全局变量存储在堆上 我有几个问题: 如果我有一个全局变量,它是一个值类型。它将存放在哪里 如果我有一个局部引用类型变量。它将存放在哪里 为什么建议这样写: public class OurClass() { public ClassA objA; public OurClass()
引用类型与值类型以及堆栈和堆中的数据分配
从这些来源,我得出以下结论:
- 引用类型的值存储在堆上,该值的地址存储在堆栈上
- 值类型存储在堆栈上
- 运行函数的局部变量存储在堆栈中
- 全局变量存储在堆上
我有几个问题:
如果我有一个全局变量,它是一个值类型。它将存放在哪里
如果我有一个局部引用类型变量。它将存放在哪里
为什么建议这样写:
public class OurClass()
{
public ClassA objA;
public OurClass()
{
objA = new ClassA();
}
}
而不是写作
public class OurClass()
{
public ClassA objA = new ClassA();
public OurClass()
{
}
}
它是否与分配绩效有关
谢谢,这与C无关。或者是C++或者C++,但不能兼而有之。这可能是有意思的: