• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
要想人前显贵,必定人后受罪。
博客园    首页    新随笔    联系   管理    订阅  订阅
值类型与引用类型

1、值类型与引用类型的区别?

a)、值类型和引用类型在内存中存储的地方不一样。

b)、在传递值类型和传递引用类型的时候,传递的方式不一样。值类型称之为值传递,引用类型称之为引用传递。

c)、值类型存储在栈中,引用类型存储在堆中。

2、值类型与引用类型有哪些?

值类型有:int、double、decimal、float、bool、char、enum、struct。

引用类型:数组、类、字符串、接口。

3、值类型和引用类型在内存开辟空间的方式?

根据上图分析:

int number = 10; 是值类型,直接在栈中开辟空间。

string s = "123";是引用类型,在栈中也开辟空间,在栈上存放的是在堆中的地址(引用)。每当在内存中开辟空间,都会有对应的地址。

1、普通引用例子练习。

新建1个名叫Person的类:

public class Person
{
    public int Age { get; set; }
    public string Name { get; set; }
}

后台代码:

class Program
{
    static void Main(string[] args)
    {
        //实例化对象1。
        Person p1 = new Person();
        p1.Name = "我是Person1";

        //实例化对象2。
        Person p2 = new Person();
        p2.Name = "我是Person2";

        //声明对象3,为其指定值。
        Person p3 = p1;
        p3.Name = "我是Person3";
        
        //打印p1.Name的属性值。
        Console.WriteLine(p1.Name);
        Console.ReadLine();
    }
}

打印结果:

2、字符串练习(字符串比较特殊)。

class Program
{
    static void Main(string[] args)
    {        
        string s1 = "S1";
        string s2 = "S2";
        string s3 = s1;
        s3 = "S3";
        Console.WriteLine(s1);
        Console.ReadKey();
    }
}

输出结果为:

End!

点击进入推荐链接

 

posted on 2018-07-20 15:50  行走的蜗牛哦  阅读(759)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3