zoukankan      html  css  js  c++  java
  • c#值类型和引用类型

    c#引用类型和值类型内存模型求解
    
    
    
    对于值类型存储 在栈中,引用类型存储在堆中我是理解的
    
    
    class A{}
    class B
    {
    private A a;//A也是存储在堆上的
    public void Test(){}//栈上指向堆上B的指针->B(这个在堆上),然后B中有个指针指向堆中A所在的地址
    }
    情况二:
    struct JGT
    {
    A a;
    //JGT被分配在栈上.同样内部有个指向堆中A所在内存的指针
    }

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;

    public partial class Default3 : System.Web.UI.Page
    {
    protected void Page_Load(object sender, EventArgs e)
    {
    RefType reft
    =new RefType();
    ValueType value
    =new ValueType();
    reft.Var
    =100;
    value.Var
    =100;
    Response.Write(
    "RefType:var"+reft.Var.ToString()+"</br>");
    Response.Write(
    "ValueType:var"+value.Var.ToString()+"</br>");
    RefType refto
    =reft;
    ValueType valueo
    =value;
    refto.Var
    =10;
    valueo.Var
    =1000;
    //引用类型
    Response.Write("RefType:var" + reft.Var.ToString() + "</br>");//修改之前 输出RefType:var10
    Response.Write("RefType:var" + refto.Var.ToString() + "</br>");//修改之后 输出RefType:var10

    //值类型
    Response.Write("ValueType:var" + value.Var.ToString() + "</br>");//修改之前 输出ValueType:var100
    Response.Write("ValueType:var" + valueo.Var.ToString() + "</br>");//修改之后 输出ValueType:var1000
    }

    public struct ValueType
    {
    public int Var;
    }

    public class RefType
    {
    public int Var;
    }

    }
  • 相关阅读:
    Log4net详细说明
    IDEA 介绍
    在互联网中关系型数据库是否不再那么重要
    彻底删除Kafka中的topic
    kafka consumer 配置详解
    kafka常用命令
    kafka可视化客户端工具Kafka Tool
    System.InvalidOperationException:“线程间操作无效: 从不是创建控件“btnSearch”的线程访问它。
    zookeeper图形化的客户端工具
    window上安装kafka(单机)
  • 原文地址:https://www.cnblogs.com/aiyp1314/p/2100861.html
Copyright © 2011-2022 走看看