Unity学习笔记(4)

数组参数:当参数为数组时,就为数组参数.
static int Sum(int[]array)
{
   int sum=0;
   for(int i=0;i<array.length;i++){
  sum+=array[i];
   }
   return sum;
}


参数数组:参数个数不确定的函数
static int Plus(params int[]array)//这里定义了一个int参数数组
{
   int sun=0;
   for(int i=0;i<array.length;i++){
  sum+=array[i];
   }
   return sum;
}
数组参数和参数数组的调用方式不同:
数组参数:int sum=Sum(new int[]{23,4,5,6});
参数数组:int sum=Plus(23,4,5,6);


结构函数:在结构体定义的函数
结构体:struct CustomerName{
public string firstName;
public string lastName;
public string getName()
        {
            return firstName+lastName;
        }
       }


static void main(string[] args){
CustomerName myName;
myName.firstName="Li"
myName.lstName="jiacong"
console.WriteLine("my name is"+myName.getName());
}


函数的重载(overload):当函数名相同,参数不同时就为函数的重载,编译器通过不同参数确定调用哪个函数。


委托(delegate):委托是一种存储函数引用的类型.
//定义了一个委托,与函数差不多
//定义委托需要加上detegate关键字
//委托的定义不需要函数体
public delegate double MyDelegate(double para1m,double param2);


函数的递归调用:一个函数调用他自身。
//f(0)=2,f(1)=3,求f(40).
 static int F(int n),
        {
            if (n == 0) return 2;
            if (n == 1) return 3;
            return F(n - 2) + F(n - 1);//运用了函数的递归调用
        }


构造函数:
//定义了一个无参的构造函数
public Vector3(){
     console.writeLine("Vector3这个函数被调用了")
}
//定义了一个有参的构造函数
public Vector3(float a,floatb){
     this.a=a;
     this.b=b; 
}


属性的定义(即get,set方法):
通过属性访问字段的作用:1.可以在设置属性时做一些校验
2.可以设置属性的只读或者只写,即设置为private


匿名类型:创建变量时不去指定类型,这个就是匿名类型.第一次赋值时,该变量的类型就被确定下来,并不能修改。
例如:var var1=34;


堆和栈:程序运行时的内存区域
我们把内存分为堆空间和栈空间
栈空间比较小,但是读取速度快
堆空间比较大,但是读取速度慢
栈的特征:数据只能从栈的顶端插入和删除,把数据放入栈顶为入栈
从栈顶删除数据为出栈。


值类型和引用类型:值类型(整型,bool struct(结构体) char 小数)和引用类型(string ,数组,自定义的类,内置的类).
值类型只需要一段单独的内存,用于存储实际的数据,(单独定义的时候放在栈中)
引用类型需要两段内存:第一段存储实际的数据,他总是位于堆中
第二段是一个引用,指向数据在堆中的存放位置
理    清    楚 引用类型到底引用了堆中的那个实际数据


面向对象的概念-----继承
C#不支持多个类的继承


虚方法(虚函数):把一个基类函数声明为Virtual,就可以在任何派生类中重写(override)该函数。
//声明为虚方法
public virtual void Move()
{
     Console.WriteLine("这里是Enemy1的公有的Move方法");
}
//重写该方法
public override void Move()
{
   Console.WriteLine("这里是Boss的移动方法");
}

猜你喜欢

转载自blog.csdn.net/qq_38411133/article/details/80613133