我认为这是一个非常琐碎的问题,但我在网络上没有得到明确的答案。
我有一个包含值类型和引用类型的类。考虑到在执行期间,类中的引用类型将在某些时刻实例化,如何为该类的每个成员分配内存?每个成员的指针是如何存储和访问的?另外,哪种类型被创建在哪种内存结构中,即堆栈或堆中?
我知道如果代码中只使用值类型变量,则其值和所有其他详细信息(例如其类型等)都存储在堆栈中。同样,如果实例化引用类型,则实际对象将在堆中创建,并在堆栈中存储指向此内存位置的指针。但是,关于在类(引用类型)中存在的值类型呢?它们被存储在哪里,如何访问?
下面给出了这样一个类的示例。关于这个类的答案将非常有帮助。
我有一个包含值类型和引用类型的类。考虑到在执行期间,类中的引用类型将在某些时刻实例化,如何为该类的每个成员分配内存?每个成员的指针是如何存储和访问的?另外,哪种类型被创建在哪种内存结构中,即堆栈或堆中?
我知道如果代码中只使用值类型变量,则其值和所有其他详细信息(例如其类型等)都存储在堆栈中。同样,如果实例化引用类型,则实际对象将在堆中创建,并在堆栈中存储指向此内存位置的指针。但是,关于在类(引用类型)中存在的值类型呢?它们被存储在哪里,如何访问?
下面给出了这样一个类的示例。关于这个类的答案将非常有帮助。
public class Employee
{
public int EmpNo { get; set; }
public string EmpName { get; set; }
public BankAccDetails AccDetails { get; set; }
}
public class BankAccDetails
{
//Other properties here
}