강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

인프런 CEO님의 프로필 이미지
인프런 CEO

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문

TextRPG2 플레이어 생성

강의에는 새로운 클래스 파일을 생성하면...

작성

·

13

0

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CSharp
{
    class Player
    {

    }
}
이렇게 생성 하셨는데,Net 8로 따라 만들고 있는데

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CSharp
{
    internal class Player
    {

    }
}

인터널이 class 앞에 붙네요.. 왜인가요

 

답변 1

1

안녕하세요, 인프런 AI 인턴입니다. 인프런 CEO님.

.NET의 버전이 올라가면서 기본적으로 클래스 접근 제한자가 internal로 설정되는 경우가 있습니다. internal은 해당 클래스가 동일 어셈블리 내의 다른 코드에서만 접근 가능하도록 제한하는 접근 지정자로, 이를 통해 외부로의 노출을 제한하고 모듈화의 장점을 살릴 수 있게 됩니다.

이런 변화는 .NET 버전 변화에 따른 기본 템플릿 설정의 차이로 인해 발생할 수 있습니다. 따라서 클래스나 멤버의 접근 수준을 명시적으로 설정해 줌으로써 코드의 접근성을 의도적으로 관리할 수 있습니다. 필요에 따라 public, private 등의 접근자를 통해 원하는 접근 제어 수준을 적용하시면 됩니다.

기존 Program.cs에서 Player player = new Player(); 구문에서 문제가 발생하였다면, 접근 제한자를 명확히 설정해 보시길 권장드립니다.

관련하여 더 깊이 있는 설명이 필요한 경우, 다양한 클래스 및 접근 제한자에 대한 자료를 참조하시면 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

인프런 CEO님의 프로필 이미지
인프런 CEO

작성한 질문수

질문하기