VR专区程序员

C# 值类型和引用类型

2017-03-30  本文已影响27人  青鱼谷雨

我们有三个问题

    一、首先在C#中那些是值类型?

    二、其次在C#中那些是引用类型??

    三、最后值类型和引用类型的区别在哪里???

值类型:

1、整形:short , ushort , int , uint , long, ulong, sbyte, byte

2、字符型:char(System.Char)

3、bool型:true,false,

4、浮点型:float(System.Single),double(System.Double);

5、枚举:Enem

6、结构体:Struct

引用类型:

1、数组:
2、string类型:
3、类
4、接口
5、委托
6、object

值类型和引用类型的区别:

public struct MyStruct               //这是值类型
{             
   public int number;
}
 public class MyClass                //这是引用类型
{
    public int number;
}
public class NewBehaviourScript : MonoBehaviour {  使用unity mono编写的,懒得开VS了


    void Start()
    {
        MyStruct s = new MyStruct();            //值类型

        s.number = 1;


        MyClass c = new MyClass();              //引用类型
        c.number = 2;
    }


}
图解.png

public class NewBehaviourScript : MonoBehaviour {


    void Start()
    {
        MyStruct s = new MyStruct();            //值类型

        s.number = 1;

        MyStruct s2 = s;

        s2.number = 5;


        MyClass c = new MyClass();              //引用类型
        c.number = 2;

        MyClass c2 = c;
        c2.number = 10;

        Debug.Log("s:" + s.number + "   s2:" + s2.number + "    c:" + c.number + "    c2:" + c2.number);
    }

图解2.png 111.png

这是在Unity中打印出来的结果。

如果一个值类型被Static修饰后,这个值类型则属于类,而类是引用类型。所以这个值类型就会像引用类型。
具体分析

上一篇 下一篇

猜你喜欢

热点阅读