【T2a】新しいコンソールアプリのテンプレート(5/6)
プロジェクトタイプ | C#コンソールアプリ※ |
---|---|
プロジェクト名 | T2a |
ソリューション名 | PIT2 |
ターゲットフレームワーク | .NET 8.0(長期的なサポート) |
最上位レベルのステートメントを使用しない | 使用する(チェックオフ) |
※「コンソールアプリ(.NET Framework)」ではないので注意せよ!
注意
- 本ページの作業内容は 前のページまでの続き になっていることに注意せよ.
- 先に前のページまでをすべて読み,指示されている作業を済ませてから本ページを読むこと.
- プロジェクトの作成作業については準備を参照せよ.
2a-5. Program.cs におけるクラスの定義
Program.cs ファイル内でクラスやメソッドを定義するには,それらを書く場所に注意する必要がある. _は新しい Program.cs ファイルのフォーマットを示したものである.
Program.cs ファイルに別のクラスを定義する場合,クラスの定義は Program.cs の末尾に置く必要がある. ためしに現状の Program.cs ファイルの先頭に_に示すクラス定義を追記してみよう.
|
|
すると_に示す通りエラーとなるはずである.
_に示すフォーマットの通り,クラスの定義はProgram.csの末尾に置く必要がある.
では先ほど追記したStudent
クラスの定義を削除して,プログラムの末尾にクラスの定義を追記してみよう.
すると今度は_のようにエラーとならないはずである.
このようにして定義したクラスも,通常のクラスと同じくProgram.csの前半の処理の本体で使用することができる.
試しにProgram.csファイルの冒頭に_に示すコードを追記してみよう.
|
|
実行結果は_のようになるはずである.
42: 医療太郎 78: 医療花子 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz
ただし_のような書き方はあまり推奨されない.このような書き方をするとクラスの定義が
Program.cs ファイルの奥底に埋もれてしまい「○○というクラスを本体で使っているけどどこで定義されているんだ?」
といった事態に陥りやすい.Visual Studio のエディタの機能に頼ればクラスやメソッドの定義を探し出すことは容易ではあるが,
C# ではクラスの定義はそのクラス名と同名の .cs ファイルに記述するのが一般的な書き方である.
先ほどの例で言えば,Student
クラスは Student.cs という名前のファイルに保存しておいた方が分かりやすく,
また Program.cs の見通しもよくなる.そのため Program.cs にはクラスを定義せずに,できるだけそのクラスのための
.cs ファイルを作ってその中にクラス定義を記述するようにしよう.
このことも実践しておこう.まず Program.cs 内の Student
クラスの定義を削除する .
|
|
この状態では冒頭のStudent
クラスを使用しているコードがエラーとなるはずである.
先ほど説明した通りクラスの定義はそのクラス名と同名のファイルに保存しておこう.
プロジェクトにクラスを追加するには以下のようにする.今回はStudent
クラスを追加してみよう.
- 【手順】プロジェクトにクラスを追加する
- Visual Studio のソリューションエクスプローラー上で,プロジェクト(またはプロジェクト内のフォルダ)を右クリック→「追加」→「クラス」をクリックする(_).
- ファイル名(クラス名)を訊かれるので,追加したいクラスの名前(.csは省略可能)を入力して「追加」ボタンをクリックする(_).
- するとプロジェクト内に↑で入力した名前の .cs ファイルが追加される(_).
このようにすると,中身が空のクラス定義が書き込まれた Student.cs という名前のファイルがプロジェクトに追加されるはずである.
このクラス定義に_のクラス定義を上書きしよう(_).このクラス定義はプロジェクトと同名の名前空間,
すなわちnamespace
の中に書かれているため,この中で記述されている
クラスをProgram.cs内で使用するには,Program.csファイルの冒頭に_に示すusingディレクティブを追記する必要がある.プロジェクト名
{ ~ }
using プロジェクト名
;
今回のプロジェクト名
はT2a
であるため,Student
クラスをProgram.cs 内で使用するためにはファイルの冒頭にusing T2a;
と追記する必要がある.
名前空間に関しては詳細はここでは割愛するが,クラスの「名字」のようなものだと思えばよい.詳しくは,以下を参照するとよいだろう.
- 参照
- 教科書「なるほどなっとくC#入門」P.245~
- Organizing types in namespaces - Microsoft Docs
ここまでの説明を正しく読み取れていれば,Program.cs ファイルは_のようになっているはずである.
|
|
ここまで書けたら実行してみよう.実行結果は_と同じになるはずである(_).
ここまで確認してから次に進もう.