Menu
Coddy logo textTech

名前空間とディレクティブ

CoddyのC#ジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 2/70。

名前空間はコードを整理し、名前の衝突を防ぎます。フォルダがファイルを整理するように、関連するクラスをグループ化します。

名前空間内にクラスを作成する

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);
    }
}

出力:

Alice

using ディレクティブがない場合、完全修飾名を使用する必要があります。

MyApp.Models.User user = new MyApp.Models.User("Bob");

using ディレクティブを使用すると、名前空間の完全なパスを毎回入力しなくても、その名前空間内の型を参照できるようになります。System は、Console のような基本的なクラスを含む一般的な名前空間です。

challenge icon

チャレンジ

中級

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 ディレクティブを使用しない場合は、完全修飾名を使用します:

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 を表示する
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

オブジェクト指向プログラミングのすべてのレッスン