このチュートリアルでは、1 つの文字列処理メソッドを含む単純なユーティリティ ライブラリを作成します。
クラス ライブラリ は、アプリケーションによって呼び出される型とメソッドを定義します。 ライブラリが .NET Standard 2.0 を対象とする場合は、.NET Standard 2.0 をサポートする任意の .NET 実装 (.NET Framework を含む) によって呼び出すことができます。 ライブラリが .NET 9 を対象とする場合は、.NET 9 を対象とする任意のアプリケーションから呼び出すことができます。 このチュートリアルでは、.NET 9 をターゲットにする方法について説明します。
クラス ライブラリを作成する場合は、サード パーティのコンポーネントとして、または 1 つ以上のアプリケーションにバンドルされたコンポーネントとして配布できます。
まず、"StringLibrary" という名前の .NET クラス ライブラリ プロジェクトと、関連付けられているソリューションを作成します。 ソリューションは、1 つ以上のプロジェクトのコンテナーとして機能します。 関連するプロジェクトを同じソリューションに追加します。
Visual Studio Code を起動します。
エクスプローラー ビューに移動し、[.NET プロジェクトの作成] 選択します。 または、Ctrl + Shift + P (MacOS の場合は Command + Shift + P) を使用してコマンド パレットを表示し、「".NET」と入力して、.NET: New Project コマンドを見つけて選択することもできます。
コマンドを選択したら、プロジェクト テンプレートを選択する必要があります。 [クラス ライブラリ] を選択します。
次に、新しいプロジェクトを作成する場所を選択します。
次に、新しいプロジェクトを作成する場所を選択します。ClassLibraryProjects
という名前のフォルダーを作成して選択します。
プロジェクトに StringLibrary名前を付け、[すべてのテンプレート オプション表示] を選択し、.NET 9 選択し、[プロジェクトの作成]選択します。
プロジェクトに StringLibrary 名前を付け、[プロジェクト作成] を選択します。
プロンプトで Enter キーを押すと、プロジェクトが <path> に作成されます。
ライブラリが .NET 9 を対象としていることを確認します。 エクスプローラーで、StringLibrary/StringLibrary .csproj を開きます。
TargetFramework
要素は、プロジェクトが .NET 9.0 を対象としていることを示しています。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
</PropertyGroup>
</Project>
Class1.cs を開き、コードを次のコードに置き換えます。
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);
}
}
}
クラス ライブラリ UtilityLibraries.StringLibrary
には、StartsWithUpper
という名前のメソッドが含まれています。 このメソッドは、現在の文字列インスタンスが大文字で始まるかどうかを示す Boolean 値を返します。 Unicode 標準では、大文字と小文字が区別されます。 Char.IsUpper(Char) メソッドは、文字が大文字の場合は true
を返します。
は、 クラスのメンバーであるかのように呼び出すことができるように、 拡張メソッドとして実装されます。
ファイルを保存します。
ソリューション エクスプローラー を エクスプローラー ビューの下部で展開します。
ソリューション エクスプローラー でソリューション 右クリックし、[ビルド] 選択するか、コマンド パレットを開き 、[.NET: ビルド] を選択してソリューションをビルドし、プロジェクトがエラーなしでコンパイルされることを確認します。
ターミナル出力は次の例のようになります。
Microsoft (R) Build Engine version 17.8.0+b89cb5fde for .NET
Copyright (C) Microsoft Corporation. All rights reserved.
Determining projects to restore...
All projects are up-to-date for restore.
StringLibrary -> C:\Projects\ClassLibraryProjects\StringLibrary\bin\Debug\net9.0\StringLibrary.dll
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:02.78
クラス ライブラリを使用するコンソール アプリケーションを追加します。 アプリはユーザーに文字列の入力を求め、文字列が大文字で始まるかどうかを報告します。
ソリューション エクスプローラーの でソリューション 右クリックし、[新しいプロジェクト] 選択するか、コマンド パレットで [.NET: 新しいプロジェクト選択します。
[コンソール アプリ] を選択します。
ShowCase という名前を付け、既定の場所を選択し、[プロジェクトの作成] を選択します。
ShowCase/Program.cs 開き、すべてのコードを次のコードに置き換えます。
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;
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;
}
}
}
このコードでは、row
変数を使用して、コンソール ウィンドウに書き込まれたデータ行の数を保持します。 25 以上の場合は常に、コンソール ウィンドウがクリアされ、ユーザーにメッセージが表示されます。
プログラムは、ユーザーに文字列の入力を求めます。 文字列が大文字で始まるかどうかを示します。 ユーザーが文字列を入力せずに Enter キーを押すと、アプリケーションが終了し、コンソール ウィンドウが閉じます。
変更を保存します。
最初は、新しいコンソール アプリ プロジェクトにはクラス ライブラリへのアクセス権がありません。 クラス ライブラリ内のメソッドを呼び出せるようにするには、クラス ライブラリ プロジェクトへのプロジェクト参照を作成します。
ソリューション エクスプローラー で ShowCase プロジェクトを右クリックし、[プロジェクト参照の追加] を選択します。
StringLibrary を選択します。
を選択します。>を実行し、デバッグせずにを実行します。
C#を選択します。
ShowCaseを選択します。
C# プログラムが読み込まれていないというエラーが発生した場合は、開いているフォルダーを閉じて、ShowCase
フォルダーを開きます。 次に、アプリをもう一度実行してみてください。
文字列を入力して Enterキーを押してプログラムを試用し、終了するには Enter キーを押します。
ターミナル出力は次の例のようになります。
Press <Enter> only to exit; otherwise, enter a string and press <Enter>:
A string that starts with an uppercase letter
Input: A string that starts with an uppercase letter
Begins with uppercase? : Yes
a string that starts with a lowercase letter
Input: a string that starts with a lowercase letter
Begins with uppercase? : No
このチュートリアルでは、ライブラリ プロジェクトを作成し、ライブラリを使用するコンソール アプリ プロジェクトを追加しました。 次のチュートリアルでは、単体テスト プロジェクトをソリューションに追加します。