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修饰后,这个值类型则属于类,而类是引用类型。所以这个值类型就会像引用类型。
具体分析