#17 C#で学ぶモジュールとパッケージの基本
C#のファイル整理は「名前空間(namespace)」という仕組みで行います。この記事では、C#における名前空間の基本と、外部ライブラリ(NuGetパッケージ)の使い方をあわせて解説します。
namespaceの宣言
namespace MyProject.Utils {
public class Greeter {
public static void Greet(string name) {
Console.WriteLine($"こんにちは、{name}さん");
}
}
}
C# 10以降では、ファイル全体を1つの名前空間にする場合、波かっこを省略した「ファイルスコープ名前空間」というシンプルな書き方もできます。
namespace MyProject.Utils;
public class Greeter {
public static void Greet(string name) {
Console.WriteLine($"こんにちは、{name}さん");
}
}
他の名前空間から使う
using MyProject.Utils;
Greeter.Greet("太郎");
`using`を書くことで、その名前空間のクラスをフルパス無しで呼び出せるようになります。同じクラス名が複数の名前空間に存在する場合は、`MyProject.Utils.Greeter`のようにフルパスで指定して曖昧さを解消できます。
外部パッケージ(NuGet)を使う
他の人が作ったライブラリを使いたい場合は、NuGetというパッケージ管理の仕組みを使います。
dotnet add package Newtonsoft.Json
インストール後は、そのライブラリの名前空間を`using`で読み込めば、自分のコードと同じように使えます。
C#ならではの注意点
C#の`namespace`は、Javaの`package`のようにフォルダ構造と厳密に一致させる必要はありません。とはいえ、多くのプロジェクトではフォルダ構造と名前空間を揃えるのが慣習になっており、Visual Studioも新しいファイルを作る際に自動でこの慣習に沿った名前空間を提案してくれます。また、`.csproj`ファイルを見ると、そのプロジェクトが依存しているNuGetパッケージの一覧を確認できるので、他人のプロジェクトを読むときはまずここをチェックすると全体像がつかみやすくなります。
まとめ
C#のファイル整理は`namespace`と`using`が基本です。フォルダ構造との対応は厳密ではありませんが、慣習として揃えるのが一般的です。外部ライブラリはNuGetで管理し、`dotnet add package`で導入できます。
本ページはプロモーションを含みます。
参考書籍(PR)
C#をもっと学びたい方には「確かな力が身につくC#「超」入門 第2版」がおすすめです。
PR
コードを書かずに自動化したい方へ
「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿