유니티

[C#] 중첩 클래스

simstealer 2023. 4. 16. 00:35
namespace MainApp
{
    // 중첩 클래스
    class OutClass
    {
        private int a = 1;

        public class InClass1
        {
            private int b = 2;
            private void B()
            {
                // 외부 클래스와 동등 클래스에 접근
                OutClass outClass = new OutClass();
                outClass.A(); // 중첩클래스의 private에 접근 가능
                InClass2 inClass2 = new InClass2();
                inClass2.C(); // 중첩클래스 안에 있지만 동등한 클래스의 private에 접근 불가능
            }
        }

        public class InClass2
        {
            private int c = 3;
            private void C()
            {

            }
        }

        private void A()
        {
            InClass1 inClass1 = new InClass1();
            inClass1.B(); // 중첩 클래스에서 내부 클래스들의 private 멤버에는 접근이 불가능하다.
            InClass2 inClass2 = new InClass2();
            inClass2.C();
        }
    }