C#/C#_기초강의

(C#) 중첩 클래스 nested class

코딩ABC 2023. 5. 25. 09:21
반응형

아래 예제는 OuterClass 내부에 InnerClass가 중첩되도록 선언되어 있습니다.

OuterClass에는 비공개 멤버 변수인 "outerName"이 있습니다.

InnerClass에는 외부 클래서에 공개된 InnerMethod가 있습니다.

 

Main 메소드에서 OuterClass 인스턴스를 생성하고 OuterMethod를 호출합니다. 그러면 InnerClass 인스턴스가 생성되고 InnerMethod가 호출됩니다.

Outer method called
Inner method called
Outer name: Outer

 

using System;

namespace ConsoleApp3
{
    class OuterClass
    {
        private string outerName;

        public OuterClass(string name)
        {
            outerName = name;
        }

        public void OuterMethod()
        {
            Console.WriteLine("Outer method called");
            InnerClass inner = new InnerClass();
            inner.InnerMethod();
        }

        //public class InnerClass
        class InnerClass
        {
            public void InnerMethod()
            {
                Console.WriteLine("Inner method called");
                // Access the outer class member
                OuterClass outer = new OuterClass("Outer");
                Console.WriteLine("Outer name: " + outer.outerName);
            }
        }
    }

    internal class Program
    {
        static void Main(string[] args)
        {
            OuterClass outer = new OuterClass("Outer");
            outer.OuterMethod();

            //InnerClass inner = new InnerClass();  // 오류
            //inner.InnerMethod();
        }
    }
}

 

중첩 클래스

반응형