C# クラスライブラリプロジェクトの構築 - Tim Corey のレッスンからの洞察
この授業で、Tim Coreyは実際のC#クラスライブラリの作成プロセスを、計画から実際のコードに至るまで案内します。 Timは計画が重要であることを強調しますが、計画が完了したら構築を始める時だと言います。
この記事では、Timのアプローチと理由を一歩ずつ正確に追い、クラスライブラリがVisual Studioでどのように作成、組織され、文書化されていくかを理解します。
Visual Studioでのクラスライブラリの開始
Timは、しばらくの間計画モードに閉じ込められていましたが、ついにコーディングの準備が整ったと言います。 彼はVisual Studioを開き、"新しいプロジェクトを作成"を選択し、"クラスライブラリ"を選びます。 TimはそれをTrackerLibraryと命名し、ソリューション名をTournamentTrackerに設定します。
Timの新しいライブラリ内での最初の行動はデフォルトのClass1.csを削除することで、彼のプロジェクトにデフォルトでも場合でも不適切に名前付けされたファイルがないようにしています。 彼は、名前変更が問題を引き起こす可能性があると言い、それを完全に削除することで後で問題を避けるためです。
プランニングをコードに変える — クラスの追加
Timは、計画立案の真の利益は、コーディングの準備が整ったら、必要なデータを推測することがないことだと説明します。 むしろ、計画された設計を実際のコードに移すだけです。
この時点で君たちは何のデータが必要なのか考えるのではなく、名前や構造が正しいか、何かが不足していないかを検証しているだけだと彼は言います。 Timは、だからこそ計画はコーディングプロセスを劇的に加速するのだと言います。
チームモデルの作成
Timは最初のクラスであるTeamModelを追加します。 彼はそれを単にTeamと命名することもできますが、それをデータモデルとして明確に識別するためにモデルを最後に追加するのが好ましいと説明します。
彼はVisual Studioのpropスニペットを使用して迅速にプロパティを生成します。 Timは以下のプロパティを作成します:
List
TeamMembers - string TeamName
Timはまた重要な点を説明します: 彼はTeamMembersが自動的に初期化されるようにして、リストがnullにならないようにしたいのです。 彼は2つのアプローチを示します:
C# 6.0以前: コンストラクタを使用してリストを初期化します。
C# 6.0以降: 下記のようにプロパティ内で直接初期化を行います:
public List<PersonModel> TeamMembers { get; set; } = new List<PersonModel>();
Timはコードを簡略化するために現代的なアプローチを好みます。
人モデルの作成
次に、TimはPersonModelを作成します。 propスニペットを使用して迅速にプロパティを追加します:
文字列 FirstName
文字列 LastName
string EmailAddress
- string CellPhoneNumber
計画がすでに終了している場合、モデル構築の速さをTimは指摘します。 また、コードが直接計画ドキュメントに基づいていることを彼は思い出させます。
トーナメントモデルの作成
Timはトーナメントモデルを追加し、それは以下を含みます:
string TournamentName
decimal EntryFee
List
EnteredTeams List
Prizes - List<List
> Rounds
List<List
賞品モデルの追加
TimはPrizeModelを以下のプロパティと共に追加します:
int PlaceNumber
string PlaceName
decimal PrizeAmount
- double PrizePercentage
これらの値は現在デフォルトの値のままにされており、必要に応じて後で変更できますと彼は述べます。
マッチアップモデルの作成
TimはMatchupModelを追加し、以下を含みます:
List
Entries TeamModel Winner
- int MatchupRound
彼はまた、先ほどのようにEntriesリストが自動的に初期化されることを確認します。
その後、TimはMatchupEntryModelを追加し、以下を含みます:
TeamModel TeamCompeting
double Score
- MatchupModel ParentMatchup
これらのモデルがクラスライブラリの基盤を完成させることをTimは強調します。
計画されたクラスライブラリは単純です
計画が完了すると、クラスライブラリの構築が非常にシンプルになるとTimは言います。 デザイン作業がすべて完了しているため、ライブラリの構造が簡潔ですと彼は強調します。
計画の最大の利点は、コーディングが迅速かつクリーンになることだと彼は思い出させます。
XMLコメントの追加 — 重要性について
コードを記述し、特にXMLコメントを使用して文書化することが最終ステップであるべきだとTimは指摘します。 彼はコメント記入が面倒だと自認しますが、今やらないと後でおそらくやらないだろうと警告します。
彼はプロパティの上にスラッシュを3つ(///)入力してXMLコメントを作成する方法を示します。 Timは次のような説明を書くことを示します:
"マッチアップにおける1つのチームを表します"
"この特定のチームのスコアを表します"
- "このチームが勝者として出てきたマッチアップを表します"
XMLコメントが単なるフォーマット済みのコメントではなく、コードの文書の一部となり、他の開発者がクラスを理解するのを助けるとTimは説明します。
XMLコメントはコードの使いやすさを向上させます
Tim は XML コメントが IntelliSense でどのように動作するかを示しています。 彼はコンストラクターを作成し、パラメーター用に XML コメントを追加します。コメントが IntelliSense に自動的に表示されることを示しています。
彼はこれを Visual Studio の組み込み Console.WriteLine() の記述と比較します。これは Microsoft 自身の XML ドキュメントに由来します。 Tim は、XML コメントを使用することで、自分のクラスライブラリに同じレベルの明確さと使いやすさを提供できることを説明します。
最後の奨励
Tim は、観覧者に対して他のモデルにも XML コメントを追加するように促します。彼はフルプロセスを示していませんが、それは繰り返しの性質のためです。
彼は次のレッスンとして、フォーム構築をプレビューして締めくくります。 Tim は、計画中に設計したフォームはシンプルなスケッチであったと述べ、今それらをより現代的で機能的に見えるようにすると言っています。
結論 — Tim のレッスン簡単にまとめ
Tim Corey のレッスンは、C# クラスライブラリの作成が計画からコードに翻訳する問題であることを示しています。 手順は次の通りです:
クラスライブラリプロジェクトを作成します
計画に基づいてモデルを追加します
リストを初期化して null を回避します
XML コメントでコードを文書化します
- 次にフォームを構築する準備をします
Tim の方法に従うことで、アプリケーションの残りをサポートする準備が整った、クリーンで構造化されたクラスライブラリを効率的かつ専門的に構築できます。

