黑马程序员技术交流社区

标题: 关于值类型和引用类型 [打印本页]

作者: 林成彬    时间: 2013-12-19 14:52
标题: 关于值类型和引用类型
本帖最后由 林成彬 于 2013-12-19 17:50 编辑

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

作者: 雨中恋人    时间: 2013-12-19 17:25
1、装箱或者拆箱
1)、装箱指的就是将值类型转换为引用类型
2)、拆箱指的就是将引用类型转换为值类型
注意:发生装箱和拆箱要满足的大条件就是这两个类型之间存在继承关系。
如果这两个类型没有继承关系,那么就不存在装箱或者拆箱。


值类型:int double decimal bool char struct enum
引用类型:数组 自定义类 object 接口 string
作者: 如远行客    时间: 2013-12-19 17:35
值类型传递就是传递一块内存空间中存放的数值,而引用类型传递的是村范法官这个数值的内存空间的地址。
通过值传递的数据在经过处理后如果不把这个处理后的值放回那块内存空间中,那里面的值是不会变的,而通过引用传递的变量,只要在运行中一旦改变,则这块内存空间里的值就会变。
作者: 醒梦    时间: 2013-12-20 01:42
四.值类型和引用类型
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视频中可空与不可空看看。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2