-
카테고리
-
세부 분야
게임 프로그래밍
-
해결 여부
미해결
class 관련 질문
21.03.01 14:22 작성 조회수 118
0
우리가 cs파일을 생성하고 cs 파일 이름을 Program으로 하면
namespace CSharp
{
// ==================== 1번 위치 ================
class Progream
{
// ============ 2번 위치 ===============
static void Main(string[] args)
{
}
}
}
이런식으로 기본적인 코드가 발생합니다.
여기서 궁금한점이 있습니다.
1번지역에 class를 선언하는 것과 2번지역에 class를 선언하는 것에 무슨 차이가 있는건가요???
namespace CSharp
{
// ==================== 1번 위치 ================
class A
{
}
class Progream
{
// ============ 2번 위치 ===============
class B
{
}
static void Main(string[] args)
{
A a = new A();
B b = new B();
}
}
}
위 코드의 A처럼 바깥에 class를 선언해도 Main 안에 객체를 찍는 것에는 문제가 없어보입니다.
어떤 점에서 차이가 있고 언제 1번지역에서 class를 선언하고 2번지역세어 class를 선언해야 하는지 궁금합니다.
답변을 작성해보세요.
2
Rookiss
지식공유자2021.03.01
https://www.geeksforgeeks.org/nested-classes-in-c-sharp/
위 내용 확인 바랍니다.
class 내부에서 또 class를 선언하는걸 중첩 클래스(nested class)라 하고
참고로 C++에서 동일한 개념이 존재합니다.
테스트하실 때 Program 내부에 중첩 클래스를 만들고,
역시 Program 내부에 있는 static main에서 테스트를 했으니
별다른 차이가 없었지만,
그게 아니라 전혀 다른 클래스에서 중첩 클래스를 사용할 경우
OuterClass.InnerClass 형태로 사용해야 합니다.
답변 1