C# 参照の値渡し

引数にrefをつけない場合、再割り当てするとメソッドのローカル参照に新しいオブジェクトが割り当てられる。
using UnityEngine;

public class RefTest : MonoBehaviour
{
    RefTestData data;
   private void Start()
    {
        data = new RefTestData();

        TestMethod(data);
        Debug.Log(data.id);

        TestMethod2(data);
        Debug.Log(data.id);

        TestMethod3(ref data);
        Debug.Log(data.id);

    }

    public void TestMethod(RefTestData data)
    {
        data = new RefTestData();
        data.id = 1;
    }

    public void TestMethod2(RefTestData data)
    {
        data.id = 1;
    }

    public void TestMethod3(ref RefTestData data)
    {
        data = new RefTestData();
        data.id = 2;
    }

    public class RefTestData
    {
        public int id;
    }
}

0
1
2

コメント

このブログの人気の投稿

C# TimeSpan