次の方法で共有


チュートリアル: Visual Studio Code を使用して .NET クラス ライブラリを作成する

このチュートリアルでは、1 つの文字列処理メソッドを含む単純なユーティリティ ライブラリを作成します。

クラス ライブラリ は、アプリケーションによって呼び出される型とメソッドを定義します。 ライブラリが .NET Standard 2.0 を対象とする場合は、.NET Standard 2.0 をサポートする任意の .NET 実装 (.NET Framework を含む) によって呼び出すことができます。 ライブラリが .NET 9 を対象とする場合は、.NET 9 を対象とする任意のアプリケーションから呼び出すことができます。 このチュートリアルでは、.NET 9 をターゲットにする方法について説明します。

クラス ライブラリを作成する場合は、サード パーティのコンポーネントとして、または 1 つ以上のアプリケーションにバンドルされたコンポーネントとして配布できます。

前提 条件

インストール手順

Windows では、この WinGet 構成ファイル を使用して、すべての前提条件をインストールします。 既に何かがインストールされている場合、WinGet はその手順をスキップします。

  1. ファイルをダウンロードし、ダブルクリックして実行します。
  2. 使用許諾契約書を読み、y と入力し、同意を求められたら Enter キーを選択します。
  3. タスク バーで点滅するユーザー アカウント制御 (UAC) プロンプトが表示された場合は、インストールを続行します。

他のプラットフォームでは、これらの各コンポーネントを個別にインストールする必要があります。

  1. .NET SDK のダウンロード ページから推奨インストーラーをダウンロードし、ダブルクリックして実行します。 ダウンロード ページでプラットフォームが検出され、プラットフォームの最新のインストーラーが推奨されます。
  2. Visual Studio Code のホーム ページから最新のインストーラーをダウンロードし、ダブルクリックして実行します。 このページではプラットフォームも検出され、リンクはシステムに適している必要があります。
  3. C# DevKit 拡張機能ページの [インストール] ボタンをクリックします。 これで Visual Studio Code が開き、拡張機能をインストールするか有効にするかを確認するメッセージが表示されます。 [インストール] を選択します。

クラス ライブラリ プロジェクトを作成する

まず、"StringLibrary" という名前の .NET クラス ライブラリ プロジェクトと、関連付けられているソリューションを作成します。 ソリューションは、1 つ以上のプロジェクトのコンテナーとして機能します。 関連するプロジェクトを同じソリューションに追加します。

  1. Visual Studio Code を起動します。

  2. エクスプローラー ビューに移動し、[.NET プロジェクトの作成] 選択します。 または、Ctrl + Shift + P (MacOS の場合は Command + Shift + P) を使用してコマンド パレットを表示し、「".NET」と入力して、.NET: New Project コマンドを見つけて選択することもできます。

  3. コマンドを選択したら、プロジェクト テンプレートを選択する必要があります。 [クラス ライブラリ] を選択します。

  4. 次に、新しいプロジェクトを作成する場所を選択します。

  5. 次に、新しいプロジェクトを作成する場所を選択します。ClassLibraryProjects という名前のフォルダーを作成して選択します。

  6. プロジェクトに StringLibrary名前を付け、[すべてのテンプレート オプション表示] を選択し、.NET 9 選択し、[プロジェクトの作成]選択します。

  7. プロジェクトに StringLibrary 名前を付け、[プロジェクト作成] を選択します。

  8. プロンプトで Enter キーを押すと、プロジェクトが<path>に作成されます

  9. ライブラリが .NET 9 を対象としていることを確認します。 エクスプローラーで、StringLibrary/StringLibrary .csproj を開きます。

    TargetFramework 要素は、プロジェクトが .NET 9.0 を対象としていることを示しています。

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <TargetFramework>net9.0</TargetFramework>
      </PropertyGroup>
    
    </Project>
    
  10. Class1.cs を開き、コードを次のコードに置き換えます。

    namespace UtilityLibraries;
    
    public static class StringLibrary
    {
        public static bool StartsWithUpper(this string? str)
        {
            if (string.IsNullOrWhiteSpace(str))
                return false;
    
            return char.IsUpper(str[0]);
        }
    }
    

    クラス ライブラリ UtilityLibraries.StringLibraryには、StartsWithUpperという名前のメソッドが含まれています。 このメソッドは、現在の文字列インスタンスが大文字で始まるかどうかを示す Boolean 値を返します。 Unicode 標準では、大文字と小文字が区別されます。 Char.IsUpper(Char) メソッドは、文字が大文字の場合は true を返します。

    は、 クラスのメンバーであるかのように呼び出すことができるように、 拡張メソッドとして実装されます。

  11. ファイルを保存します。

  12. ソリューション エクスプローラーエクスプローラー ビューの下部で展開します。

  13. ソリューション エクスプローラー でソリューション 右クリックし、[ビルド] 選択するか、コマンド パレットを開き 、[.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
    

ソリューションにコンソール アプリを追加する

クラス ライブラリを使用するコンソール アプリケーションを追加します。 アプリはユーザーに文字列の入力を求め、文字列が大文字で始まるかどうかを報告します。

  1. ソリューション エクスプローラーの でソリューション 右クリックし、[新しいプロジェクト] 選択するか、コマンド パレットで [.NET: 新しいプロジェクト選択します。

  2. [コンソール アプリ] を選択します。

  3. ShowCase という名前を付け、既定の場所を選択し、[プロジェクトの作成] を選択します。

  4. 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;
    
            // 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;
            }
        }
    }
    

    このコードでは、row 変数を使用して、コンソール ウィンドウに書き込まれたデータ行の数を保持します。 25 以上の場合は常に、コンソール ウィンドウがクリアされ、ユーザーにメッセージが表示されます。

    プログラムは、ユーザーに文字列の入力を求めます。 文字列が大文字で始まるかどうかを示します。 ユーザーが文字列を入力せずに Enter キーを押すと、アプリケーションが終了し、コンソール ウィンドウが閉じます。

  5. 変更を保存します。

プロジェクト参照を追加する

最初は、新しいコンソール アプリ プロジェクトにはクラス ライブラリへのアクセス権がありません。 クラス ライブラリ内のメソッドを呼び出せるようにするには、クラス ライブラリ プロジェクトへのプロジェクト参照を作成します。

  1. ソリューション エクスプローラー ShowCase プロジェクトを右クリックし、[プロジェクト参照の追加] を選択します。

  2. StringLibrary を選択します。

アプリを実行する

  1. を選択します。>を実行し、デバッグせずにを実行します。

  2. C#を選択します。

  3. ShowCaseを選択します。

    C# プログラムが読み込まれていないというエラーが発生した場合は、開いているフォルダーを閉じて、ShowCase フォルダーを開きます。 次に、アプリをもう一度実行してみてください。

  4. 文字列を入力して 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
    

その他のリソース

次の手順

このチュートリアルでは、ライブラリ プロジェクトを作成し、ライブラリを使用するコンソール アプリ プロジェクトを追加しました。 次のチュートリアルでは、単体テスト プロジェクトをソリューションに追加します。

Visual Studio Code を使用して .NET で .NET クラス ライブラリをテストする