A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 林成彬 高级黑马   /  2013-12-19 14:52  /  1012 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 林成彬 于 2013-12-19 17:50 编辑

值类型大家都很清楚,但是引用类型我就不太明白,求指导,什么是引用类型,值类型和引用类型有什么关系,有什么区别,求指导

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

3 个回复

倒序浏览
1、装箱或者拆箱
1)、装箱指的就是将值类型转换为引用类型
2)、拆箱指的就是将引用类型转换为值类型
注意:发生装箱和拆箱要满足的大条件就是这两个类型之间存在继承关系。
如果这两个类型没有继承关系,那么就不存在装箱或者拆箱。


值类型:int double decimal bool char struct enum
引用类型:数组 自定义类 object 接口 string

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

回复 使用道具 举报
值类型传递就是传递一块内存空间中存放的数值,而引用类型传递的是村范法官这个数值的内存空间的地址。
通过值传递的数据在经过处理后如果不把这个处理后的值放回那块内存空间中,那里面的值是不会变的,而通过引用传递的变量,只要在运行中一旦改变,则这块内存空间里的值就会变。

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

回复 使用道具 举报
四.值类型和引用类型
namespace 值类型和引用类型
{
    class Program
    {
        static void Main(string[] args)
        {
            //int,datetime,bool,char等都属于值类型(ValueType),占的内存很小,它的值是可以直接进行拷贝传递的
            int i = 10;
            int j = i;
            i++;
            Console.WriteLine(j);
            Console.WriteLine(i);
            //普通对象,函数,则是引用类型,控制的是同一片区域,赋值的时候是传递引用
            Person p1 = new Person(18);
            Person p2 = p1;//p2指向p1指向的对象
            p1.Age++;
            Console.WriteLine(p1.Age);
            Console.WriteLine(p2.Age);
            Console.ReadKey();
        }
    }
    class Person
    {
        //属性
        public int Age
        {
            get;//在.Framework3.0以后,就可以直接省去私有字段和get,set代码段了
            set;
        }
        //构造方法
        public  Person(int age)
        {
            this.Age = age;
        }

    }
}
你看看这个,应该会懂的。建议你最好把WPF视频中可空与不可空看看。

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马