unity3D-游戏/AR/VR在线就业班 C#入门值类型和引用类型学习笔记

unity3D-游戏/AR/VR在线就业班 C#入门值类型和引用类型学习笔记
点击观看视频学习:http://edu.csdn.NET/lecturer/107

一、值类型和引用类型

值类型在栈中分配空间,由系统自动分配

引用类型在堆中分配空间,由我们用new分配

String是特殊的引用类型

using System; 
namespace Lesson_08
{

    public class Person{
        public  string  name;
    }

    class MainClass
    {
        
        public static void Main (string[] args)
        {
            //值类型
            //定义两个变量
            int n1;
            int n2;
            //给第一个变量赋值
            n1 = 5;
            //让第二个变量等于第一个变量
            n2 = n1;
            //改变第二个变量
            n1 += 2;
            //把变量输出
            Console.WriteLine ("N1=!"+n1);
            Console.WriteLine ("N2=!"+n2);
            //引用类型
            //定义两个引用类型变量
            Person p1;
            Person p2;
            //给第一个变量赋值
            p1=new Person();
            p1.name = "老王";
            //改变第二个变量
            p2=p1;
            //改变第二个变量
            p2.name="老张";

            //把变量输出
            Console.WriteLine ("p1=!"+p1.name);
            Console.WriteLine ("p2=!"+p2.name);
        }
    }
}

赋值

值类型的变量数据存储在栈内存区域

引用类型的变量数据存储在堆内区域

值类型变量互相赋值之后,对灵感变量的任何错做都不会互相影响,因为它们各自有独立的存储空间,操作的是两个不同的数据。

引用类型互相赋值之后,它们公用一个空间的数据,会互相影响。

using System;
namespace Lesson_08
{

    public class Person{
        public  string  name;
    }

    class MainClass
    {
        
        public static void Main (string[] args)
        {
            //值类型
            //定义两个变量
            //系统自动在栈中开辟空间,n1和n2数据存在的空间不同
            int n1;
            int n2;
            //给第一个变量赋值
            n1 = 5;
            //让第二个变量等于第一个变量
            n2 = n1;
            //改变第二个变量
            n2 += 2;
            //把变量输出

            Console.WriteLine ("N1="+n1);
            Console.WriteLine ("N2="+n2);
            //引用类型
            //定义两个引用类型变量
            Person p1;
            Person p2;
            //给第一个变量赋值
            //当我们使用的时候才会开辟新的空间,在堆区开辟了空间,p1和p2使用一个数据空间
            p1=new Person();
            p1.name = "老王";
            //改变第二个变量
            p2=p1;
            //改变第二个变量
            p2.name="老张";

            //把变量输出
            Console.WriteLine ("p1="+p1.name);
            Console.WriteLine ("p2="+p2.name);
        }
    }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值