ここではプログラムを複数のソースコードに分割する方法を学びます。
普通は複数のcsファイルでプログラムを作成するので、これは必須の知識になります。
複数のソースコードに分割する理由
理由は単純です。1ファイルに全て書いてたら長くて読みづらいし、1人しか開発できません。
特にソースコードの長さと保守性は関係性が高く、ソースコードが長すぎるとゴミ扱いされます。
何行くらいから長いの?
1000行とか超えると長いんだけど、UI系とか普通に記述して超えることもある。
それもあって特に何行って指標はないかな。良くないのは簡単に分割できる処理を1つにすること。
ソースコードを追加する方法
いくつか手段がありますが、ここでは最もシンプルな方法を利用します。
次の手順に従ってVisual Studioを操作してください。
カスタマイズしてるから見た目が違うかも。
Tips既存のcsファイルをOS側でコピー、ソリューション エクスプローラーに貼り付ける方法でも追加できます。
複数のソースコードにプログラムを記述する
複数のソースコードでコーディングするのは簡単です。大抵は意識しなくても動きます。
ここでは次のような2ファイル構成でプログラムを作成することにします。
- Program.cs
- Class1.cs
最初にClass1.csをコーディングします。これは呼び出される側の簡単なクラスです。
中身は表示用のメソッドのみ、インスタンス化して呼び出せば引数の値が出力されます。
namespace Sample
{
internal class Class1
{
public void Display(string name)
{
Console.WriteLine($"name={name}");
}
}
}
補足自動的に作成されたusingが不要なら消してもいいです。
次にProgram.csをコーディングします。こちらには先程のクラスを呼び出す処理を書きます。
なお、一般的にMain関数(メソッド)はProgram.csに記述します。と言うか、何もしなければ最初から書いてあります。
namespace Sample
{
internal class Program
{
static void Main(string[] args)
{
var c = new Class1();
c.Display("りさ");
}
}
}
2つのファイルをコーディングしたら普通にビルドします。どこにも問題がなければビルドは終了します。
この時、分割したファイルのいずれかに問題があると、全体がビルドエラーとなりプログラムは実行できません。
POINTIDEはビルドエラーになってるファイルを教えてくれます。ちゃんとエラーを見ましょう。
ディレクトリと名前空間の関係
複数のcsファイルはフォルダを作って管理することもできます。大規模なプログラムになるほど必要な作業です。
そして、このファイルとフォルダの関係は名前空間とリンクしてます。つまり、ディレクトリ構造がそのまま名前空間になります。
ここではC#の名前空間について学びます。 名前空間 (namespace) 名前空間とは、複数のクラス等を1つの領域にまとめる機能です。この仕組みを使うことで、ある程度の機能を1つのスコープにまとめることができます。 名前空間を定義する方法 まとめたい領域をnamespaceと{}で囲みます。実は最初から何度も登場してますが、改めて確認しましょう。 では、以下が構文とサンプルコードです。 // 名前空間のOSを定義 namespace...
ここで注意ですが、実はディレクトリ構造と名前空間の関係は必ずしもリンクする必要はありません。
有効なのはcsファイルにnamespaceで記述した名前空間です。これが合ってればビルドエラーにはなりません。
特別な理由がなければ名前空間とディレクトリ構造はリンクさせましょう。
ディレクトリ(フォルダ)を追加する方法
先程のファイルを追加する方法と同じく、ソリューション エクスプローラーから操作します。
今回はプロジェクトのルートに追加するので、プロジェクトを選択して右クリックします。
作成したフォルダ名を変える場合はエクスプローラーと同じ感覚で操作します。
例えば右クリックして名前を変えるとか、F2のショートカットを使うとか。
ディレクトリ(フォルダ)にファイルを追加する方法
ディレクトリにファイルを追加する方法はプロジェクトに追加した方法と同じです。
先程はプロジェクトを右クリックしましたが、今回は対象のディレクトリを右クリックします。
POINT追加したいディレクトリを対象に右クリックする。
正しく追加された場合、こんな感じになります。
また、名前空間とディレクトリ構造がリンクしてることを確認しましょう。
namespace Sample.Data
{
internal class Person
{
}
}
あとがき
人のソースコードを見た時に無駄に長いとやる気なくなる。
◆ C#に関する学習コンテンツ
この記事は参考になりましたか?
コメント