直接上代码
Button btn;
string test = "ta他啊";
int temp = 99;
private void Awake()
{
btn = transform.GetComponent
结果
string值:ta他啊int值:99 string值:她int值:1024
结论
委托是封装一个方法,这个方法里面所有的变量其实都是传的地址,而不是值,这也就说明了为什么当你去循环注册button时会出现数组越界
比如一个for循环 i<5, 意思就是i=5的时候跳出循环
你的i传到委托里,其实传地址进去而不是一个值,当循环结束,i的值也就变成了5,点击事件当然会出现数组越界的错误。有些人循环注册事件老是最后一个值也是这个原因
解决方法就是直接再声明一个变量int temp=i,把temp传进委托里,因为temp仅仅是保留了i的值。



