C#中的类型

先看概括图:

值类型:

       创建与初始化:

       形式:

                   {修饰符}     类型    标识符{,标识符};

                   {修饰符}      类型     标识符{=初值}    {标识符={初值}};

         即:

 public int i;//说明i为公有int类型变量    

引用类型:

          创建于初始化:
        (1)object类型
                 形式:
                        object   标识符{=数值};
                 即:
                        object obj;                      //说明obj为object类型变量
                        object   obj2=10.25 ;        //说明obj2为object型变量并初始化
        (2)string类型
                 形式:
                         string 引用标识符{=字符串字面值};
                 即:
   string   s       //创建一个字符串的引用
   string   s=new   string("zhudan")    //创建一个新的字符串,并保存引用

值类型与引用类型区别:

namespace _1
{
    class ValueClass            //定义类
    {
        public int value = 0;
    }
    class ValueAndRefType            //定义类
    {
        public static void Main()    //方法
        {
            int a = 0;              //a的初始变量未整型0
            int b = a;
            b = 10;
            ValueClass ref1 = new ValueClass();    //创建类对象ref1
            ValueClass ref2 = ref1;               //创建类对象ref2,并赋值ref1
            ref2.value = 10;
            Console.WriteLine("Value:{0},{1}", a, b);     //对变量ref2重新赋值
            Console.WriteLine("Refs:{0},{1}", ref1.value, ref2.value); //通过ref2重新赋值,影响了ref1和ref2所引用对象
        }
    }
}
运行结果
                     Value:0,1
                     Refs:10,10
由此例可以得知:
          区别1:值类型的变量包含自身的数据,而引用类型的变量包含的是指向数据的内存块的引用。
       区别2:值类型的变量都有一份自己的数据拷贝,因而不可以通过操作其中的一个来影响另一个,而对于引用类型,两个变量有可能引用同一对象,因而,可以通过操作一个变量来影响另一个变量。

装箱与拆箱:

       装箱:将值类型转换为object类型,是一个数值分配一个对象实例,并把这个数值拷贝到新对象中。
                例如:   
              int   num =1025;      //值类型
              object   obj = num;        //num被装箱到obj
       拆箱:将object类型转换为值类型
                 例如:                 
               int  num =1025;         //值类型
               object  obj = num;    //num被装箱到obj中
               int  num2 = (int)obj;   //拆箱返回到int
注意:装箱时不需要显示地强制类型转换。拆箱时,则必须进行强制类型转换。这是因为在拆箱情况下,一个对象可以强制转换到任何类型。




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值