Unity学前C#:类型 对象 变量(下)

一.C#中的五大数据类型

在上篇文章中讲过类型所包含的事情,这一个标题讲一下具体的类型

 类:

objectstring本身就是类,因为过于常见,所以c#吸收他们成文关键子了.

二.什么是变量

变量表示了存储位置,并且每个变量都有一个类型,以决定什么样的值能够存入变量

变量一共有七种:

静态变量

public static int score;

非静态成员变量

public int Age;

数组(也是引用类型,但是加了下表的数组不是引用类型)

int[] arry = new int[100];

值参数:

public int Add(ref int a,int b);

引用参数变量:加了ref就是引用参数变量

public int Add(int a,int b);//其中的b就是值参数,即改变值参数不会影响原先的变量发生变化

输出参数变量:加了out就是输出参数变量

public int Add(out int a,int b);

局部变量:

public int Add(int a,int b)
{
    int c = a+b;//其中c就是局部变量
}

三.值类型变量和引用类型变量

1.值类型变量

计算机的处理步骤就是:

byte b;
b=100;

1)首先声明了b,然后内存分给你一个编号(假设:1000001)

此时还没有分配具体的内存

2)根据定义的数据类型分配相应的内存

byte占一个字节所以就分配八个格子

2.引用类型的变量和实例


static void main()
{
    Student stu;
    stu = new Student();
}


class Student
{
    uint x;
    double y;
}

以上述代码为例子讲述计算机处理的步骤

1)首先分给stu一个首地址

2)判断你是引用类型时候就会给你分配一个空的存储其他地址的空间

3)当new student()出来以后就会在其他的地方分配uint+double的空间之和

4)将new 出来的地址存放到stu里面

四.其余的小知识点

1.局部变量是在Stack上分配内存

上面的例子stu也是局部变量,所以stu是分配在stack上面的

2. 变量的默认值

一些明显的要赋值的比如int没有默认值

3.常量(不可改变)

4.装箱和拆箱Boxing & UnBoxing

装箱

int x = 10;
//object引用类型
object obj = x;

1)先分配给obj一个内存,里面没有定西

2)计算机发现赋值的是一个x,就先赋值Stack的值到堆上,然后再将地址给obj ,实质上就是封装成object的一个类

拆箱

 就是将obj里面的数据copy到定义好的变量中

注意:由上述操作可以看出装箱和拆箱都十分吃性能,因为从栈上搬到堆上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值