チュートリアル: Visual Studio を使用して .NET クラス ライブラリを作成する
このチュートリアルでは、1 つの文字列処理メソッドを含む単純なクラス ライブラリを作成します。
クラス ライブラリ は、アプリケーションによって呼び出される型とメソッドを定義します。 ライブラリが .NET Standard 2.0 を対象とする場合は、.NET Standard 2.0 をサポートする任意の .NET 実装 (.NET Framework を含む) によって呼び出すことができます。 ライブラリが .NET 8 を対象とする場合は、.NET 8 を対象とする任意のアプリケーションから呼び出すことができます。 このチュートリアルでは、.NET 8 をターゲットにする方法について説明します。
クラス ライブラリを作成するときに、NuGet パッケージとして、またはそれを使用するアプリケーションにバンドルされたコンポーネントとして配布できます。
前提 条件
.NET デスクトップ開発ワークロードがインストールされた Visual Studio 2022。 このワークロードを選択すると、.NET 8 SDK が自動的にインストールされます。
詳細については、「Visual Studioを使用した .NET SDK のインストール」を参照してください。
ソリューションを作成する
まず、クラス ライブラリ プロジェクトを配置する空のソリューションを作成します。 Visual Studio ソリューションは、1 つ以上のプロジェクトのコンテナーとして機能します。 関連するプロジェクトを同じソリューションに追加します。
空のソリューションを作成するには:
Visual Studio を起動します。
スタート ウィンドウで、[新しいプロジェクト
作成] を選択します。 [新しいプロジェクト の作成] ページで、検索ボックス ソリューション を入力します。 空白のソリューション テンプレートを選択し、次に [次へ]を選択します。
Visual Studio で空のソリューション テンプレートを
する [新しいプロジェクト の構成] ページで、[ソリューション名] ボックスに「ClassLibraryProjects」と入力します。 次に、を選択して、を作成します。
クラス ライブラリ プロジェクトを作成する
"StringLibrary" という名前の新しい .NET クラス ライブラリ プロジェクトをソリューションに追加します。
ソリューション エクスプローラーの でソリューション
を右クリックし、[追加] を選択し、[新しいプロジェクト ] を選択します。 [新しいプロジェクト の追加] ページで、検索ボックス ライブラリ を入力します。 [言語] の一覧から [C#
または Visual Basic を し、[プラットフォーム] の一覧から [すべてのプラットフォーム を ] を選択します。 [クラス ライブラリ] テンプレートを選んでから、[次へ] を選択します。 [新しいプロジェクト の構成] ページで、[プロジェクト名] ボックスに 「StringLibrary」 を入力し、[次へ]を選択します。
[追加情報] ページで、[.NET 8] を選択し、次に、[作成] を選択します。
ライブラリが正しいバージョンの .NET を対象としていることを確認します。 ソリューション エクスプローラーのでライブラリ プロジェクト
右クリックし、[プロパティ] 選択します。 Target Framework テキスト ボックスには、プロジェクトが .NET 8.0 を対象としていることを示します。 Visual Basic を使用している場合は、ルート名前空間 テキスト ボックスのテキストをクリアします。
クラス ライブラリ のプロジェクトプロパティを
に設定する プロジェクトごとに、プロジェクト名に対応する名前空間が Visual Basic によって自動的に作成されます。 このチュートリアルでは、コード ファイルで
namespace
キーワードを使用して、最上位レベルの名前空間を定義します。Class1.cs または Class1.vb のコード ウィンドウのコードを次のコードに置き換え、ファイルを保存します。 使用する言語が表示されない場合は、ページの上部にある言語セレクターを変更します。
using System; namespace UtilityLibraries { public static class StringLibrary { public static bool StartsWithUpper(this string str) { if (string.IsNullOrWhiteSpace(str)) return false; char ch = str[0]; return char.IsUpper(ch); } } }
Imports System.Runtime.CompilerServices Namespace UtilityLibraries Public Module StringLibrary <Extension> Public Function StartsWithUpper(str As String) As Boolean If String.IsNullOrWhiteSpace(str) Then Return False End If Dim ch As Char = str(0) Return Char.IsUpper(ch) End Function End Module End Namespace
クラス ライブラリ
UtilityLibraries.StringLibrary
には、StartsWithUpper
という名前のメソッドが含まれています。 このメソッドは、現在の文字列インスタンスが大文字で始まるかどうかを示す Boolean 値を返します。 Unicode 標準では、大文字と小文字が区別されます。 Char.IsUpper(Char) メソッドは、文字が大文字の場合はtrue
を返します。は、 クラスのメンバーであるかのように呼び出すことができるように、 拡張メソッドとして実装されます。 C# コードで string
した後の疑問符 (?
) は、文字列が null である可能性があることを示します。メニュー バーで、[ビルド>] の [ビルド ソリューション] を選択するか、Ctrl+Shift+B キーを押して、プロジェクトがエラーなくコンパイルされることを確認します。
ソリューションにコンソール アプリを追加する
クラス ライブラリを使用するコンソール アプリケーションを追加します。 アプリはユーザーに文字列の入力を求め、文字列が大文字で始まるかどうかを報告します。
"ShowCase" という名前の新しい .NET コンソール アプリケーションをソリューションに追加します。
ソリューション エクスプローラーの でソリューション
右クリックし、[新しいプロジェクト 追加] 選択します。 [新しいプロジェクト の追加] ページで、検索ボックスに コンソール を入力します。 [言語] の一覧から [C#
または Visual Basic を し、[プラットフォーム] の一覧から [すべてのプラットフォーム を ] を選択します。 コンソール アプリケーション テンプレートを選択し、[次へ]選択します。 [新しいプロジェクトの構成] ページで、[プロジェクト名] ボックスに「ShowCase」と入力します。 次 を選択します。
[追加情報] ページの [フレームワーク] ボックスの [.NET 8] を選択します。 次に、 [作成] を選択します。
Program.cs または Program.vb ファイルのコード ウィンドウで、すべてのコードを次のコードに置き換えます。
using System; using UtilityLibraries; class Program { static void Main(string[] args) { int row = 0; do { if (row == 0 || row >= 25) ResetConsole(); string? input = Console.ReadLine(); if (string.IsNullOrEmpty(input)) break; Console.WriteLine($"Input: {input} {"Begins with uppercase? ",30}: " + $"{(input.StartsWithUpper() ? "Yes" : "No")}{Environment.NewLine}"); row += 3; } while (true); return; // Declare a ResetConsole local method void ResetConsole() { if (row > 0) { Console.WriteLine("Press any key to continue..."); Console.ReadKey(); } Console.Clear(); Console.WriteLine($"{Environment.NewLine}Press <Enter> only to exit; otherwise, enter a string and press <Enter>:{Environment.NewLine}"); row = 3; } } }
Imports UtilityLibraries Module Program Dim row As Integer = 0 Sub Main() Do If row = 0 OrElse row >= 25 Then ResetConsole() Dim input As String = Console.ReadLine() If String.IsNullOrEmpty(input) Then Return Console.WriteLine($"Input: {input} {"Begins with uppercase? ",30}: " + $"{If(input.StartsWithUpper(), "Yes", "No")} {Environment.NewLine}") row += 3 Loop While True End Sub Private Sub ResetConsole() If row > 0 Then Console.WriteLine("Press any key to continue...") Console.ReadKey() End If Console.Clear() Console.WriteLine($"{Environment.NewLine}Press <Enter> only to exit; otherwise, enter a string and press <Enter>:{Environment.NewLine}") row = 3 End Sub End Module
このコードでは、
row
変数を使用して、コンソール ウィンドウに書き込まれたデータ行の数を保持します。 25 以上の場合は常に、コンソール ウィンドウがクリアされ、ユーザーにメッセージが表示されます。プログラムは、ユーザーに文字列の入力を求めます。 文字列が大文字で始まるかどうかを示します。 ユーザーが文字列を入力せずに Enter キーを押すと、アプリケーションが終了し、コンソール ウィンドウが閉じます。
プロジェクト参照を追加する
最初は、新しいコンソール アプリ プロジェクトにはクラス ライブラリへのアクセス権がありません。 クラス ライブラリ内のメソッドを呼び出せるようにするには、クラス ライブラリ プロジェクトへのプロジェクト参照を作成します。
ソリューション エクスプローラー
で、 プロジェクトの [ 依存関係] ノードを右クリックし、[プロジェクト参照の追加]選択します。 で参照コンテキスト メニューを追加する
[参照マネージャー] ダイアログ ボックスで、[StringLibrary] プロジェクトを選び、[OK] を選びます。
アプリを実行する
ソリューション エクスプローラー
で、 ShowCase プロジェクトを右クリックし、コンテキスト メニューの [スタートアップ プロジェクトとして設定]選択します。 Visual Studio プロジェクトのコンテキスト メニューを使用して
Ctrl
F5 押して、デバッグなしでプログラムをコンパイルして実行します。 文字列を入力してEnterキーを押すとプログラムを試すことができ、終了するにはEnterキーを押します。
その他のリソース
- .NET CLI を使用してライブラリを開発する
- .NET Standard のバージョンと、をサポートするプラットフォームです。
次の手順
このチュートリアルでは、クラス ライブラリを作成しました。 次のチュートリアルでは、クラス ライブラリを単体テストする方法について説明します。
Visual Studio を使用して .NET クラス ライブラリを単体テストする
または、自動単体テストをスキップし、NuGet パッケージを作成してライブラリを共有する方法を学習することもできます。
Visual Studio を使用してパッケージを作成して発行する
または、コンソール アプリを発行する方法について説明します。 このチュートリアルで作成したソリューションからコンソール アプリを発行すると、クラス ライブラリは .dll ファイルとして使用されます。
Visual Studio を使用して .NET コンソール アプリケーションを発行する
.NET