您好,欢迎来到抵帆知识网。
搜索
您的当前位置:首页C#内存布局

C#内存布局

来源:抵帆知识网
C#内存布局

1. 2. 3. 4. 5. 6.

值类型 ......................................................................................................................................... 2 引用类型 ..................................................................................................................................... 2 简单类对象 ................................................................................................................................. 2 静态成员 ..................................................................................................................................... 3 继承 ............................................................................................................................................. 4 动态多态 ..................................................................................................................................... 6

1. 值类型

int a = 12;

a 12 堆栈

2. 引用类型

string str = “Hello”;

1004:1001 str

1004:1001 H e l l o 堆栈

托管堆

3. 简单类对象

class Base {

protected int bD;

public void bFunc() { } }

class Example {

static void Main(string[] args) {

Base bObj = new Base(); } }

Base对象

bObj

同步块索引 类型表指针 bD

Base类型表

… 基类型表指针 bFunc()

4. 静态成员

class Base {

protected int bD; private static int bS;

public void bFunc() { }

public static void bStaticFunc() { } }

class Example {

static void Main(string[] args) {

Base bObj = new Base(); } }

Base对象

bObj

同步块索引 类型表指针 bD Base类型表

… 基类型表指针 bS bFunc() bStaticFunc()

5. 简单继承

class Base

{

protected int bD; }

class Derived : Base {

protected int dD; }

class Example {

static void Main(string[] args)

{ Base bObj = new Base();

Derived dObj = new Derived(); } }

Derived对象

dObj 同步块索引 类型表指针 bD Derived类型表

… 基类型表指针 Base类型表

… 基类型表指针 Base对象 bObj 同步块索引 类型表指针 dD

6. 涉及方法和静态成员的继承

class Base {

protected int bD; private static int bS;

public void bFunc() { }

public static void bStaticFunc() { } }

class Derived : Base {

protected int dD; private static int dS;

public void dFunc() { }

public static void dStaticFunc() { } }

class Example {

static void Main(string[] args)

{

Base bObj = new Base();

Derived dObj = new Derived(); } }

Derived对象

dObj 同步块索引 类型表指针 bD Derived类型表

… 基类型表指针 dS bFunc() dStaticFunc() Base对象 bObj 同步块索引 类型表指针 dD

Base类型表

… 基类型表指针 bS bFunc() bStaticFunc() 7. 动态多态

类型表 … 方法表细目 基类的虚拟方法 实现的接口方法 自定义方法

基类型表指针 静态字段 方法表

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- dfix.cn 版权所有 湘ICP备2024080961号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务