Closed1
【C#】参照型と代入、参照書き換え・メンバーの書き換え
using UnityEngine;
public class ClassReferenceTest : MonoBehaviour
{
class Hogehoge
{
public string mess = "A";
}
[ContextMenu("Execute")]
void Test()
{
Hogehoge origin = new Hogehoge();
Hogehoge reference = origin; //値ではなく参照を渡している
Debug.Log("1 bar = " + origin.mess); //"A"
Debug.Log("1 foo = " + reference.mess);//"A"
origin.mess = "BBBB"; //参照のメンバーを書き換える
Debug.Log("2 bar = " + origin.mess); //"BBBB"は想定内
Debug.Log("2 foo = " + reference.mess); //"BBBB"参照元が書き換わっている。
reference.mess = "CCCCCCCCCCC"; //参照のメンバーを書き換える
Debug.Log("3 bar = " + origin.mess); //"CCCCCCCCCCC"参照なので書き換わる
Debug.Log("3 foo = " + reference.mess); //"CCCCCCCCCCC"は想定内。
}
}
このスクラップは2021/05/09にクローズされました