<span style="font-size:24px;">1、变量的作用域</span>
<span style="font-size:14px;">using UnityEngine;
using System.Collections;
public class NewScript : MonoBehaviour {
public int a;
void Start () {
int a = 5;
Debug.Log (a);
}
void Update(){
Debug.Log (a);
}
}</span><span style="font-size:24px;">
</span>
输出结果依次为5、0,前者public int a 的作用域为整个类,后者int a的仅在start()方法中有效;若去掉第二个int a前面的int,则输出结果均为5.
using UnityEngine;
using System.Collections;
public class bianliang : MonoBehaviour {
void Start () {
int a=1;
Debug.Log (a);
}
void Update () {
int a = 2;
Debug.Log (a);
}
}
输出的结果依次为1,2;若去掉int a=2,则报错。
ps: 在 for、while 循环中声明的变量,只存在于该循环体内;定义变量时,切忌变量域的冲突;在方法中定义变量并且给变量赋值时,可以改变类的字段,但是不能改变其他方法中的变量的值,会导致作用域的冲突;在变量前面加const可以将其指定为常量,常量在声明时就必须初始化,赋值后不能再更改,常量默认为静态;string也是引用类型,但是在修改一个字符串时,实际上是创建了一个新的字符串,这一