네임스페이스와 지시문
Coddy C# 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 70개 중 2번째.
네임스페이스는 코드를 정리하고 이름 충돌을 방지합니다. 폴더가 파일을 정리하는 것처럼 관련 클래스들을 함께 그룹화합니다.
네임스페이스 내에 클래스를 생성합니다.
namespace MyApp.Models
{
public class User
{
public string Name { get; set; }
public User(string name)
{
Name = name;
}
}
}다른 네임스페이스의 클래스에 액세스하려면 using 지시문을 사용하세요.
using System;
using MyApp.Models;
class Program
{
static void Main()
{
User user = new User("Alice");
Console.WriteLine(user.Name);
}
}출력:
Aliceusing 지시문이 없으면, 정규화된 이름을 사용해야 합니다.
MyApp.Models.User user = new MyApp.Models.User("Bob");using 지시문을 사용하면 매번 전체 네임스페이스 경로를 입력하지 않고도 네임스페이스 내의 형식을 참조할 수 있습니다. System은 Console과 같은 기본적인 클래스를 포함하는 일반적인 네임스페이스입니다.
챌린지
중급MyApp.Models 네임스페이스에 User 클래스가 있습니다. 정규화된 이름을 사용하지 않고 User 클래스를 사용할 수 있도록 Program.cs에 올바른 using 지시문을 추가하세요.
치트 시트
네임스페이스는 관련 있는 클래스들을 함께 그룹화하여 코드를 조직화하고 이름 충돌을 방지합니다.
네임스페이스 안에 클래스를 생성합니다:
namespace MyApp.Models
{
public class User
{
public string Name { get; set; }
public User(string name)
{
Name = name;
}
}
}다른 네임스페이스의 클래스에 접근하려면 using 지시문을 사용하세요:
using System;
using MyApp.Models;
class Program
{
static void Main()
{
User user = new User("Alice");
Console.WriteLine(user.Name);
}
}using 지시문이 없는 경우, 전체 이름(fully qualified name)을 사용합니다:
MyApp.Models.User user = new MyApp.Models.User("Bob");System 네임스페이스는 Console과 같은 기본적인 클래스들을 포함하고 있습니다.
직접 해보기
using System;
// TODO: MyApp.Models를 위한 using 지시문 추가
class Program
{
static void Main()
{
string userName = Console.ReadLine();
// TODO: userName을 사용하여 User 객체 생성
// TODO: "User created: "와 이어서 사용자의 Name 출력
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.