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

このチュートリアルでは、1 つの文字列処理メソッドを含むシンプルなクラス ライブラリを作成します。

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

クラス ライブラリを作成するときに、NuGet パッケージとして、またはそれを使用するアプリケーションにバンドルされているコンポーネントとして配布できます。

前提条件

ソリューションを作成する

まず、クラス ライブラリ プロジェクトを配置する空のソリューションを作成します。 1 つの Visual Studio のソリューションは、1 つまたは複数のプロジェクトのコンテナーとして機能します。 さらに関連するプロジェクトを同じソリューションに追加します。

空のソリューションを作成するには:

  1. Visual Studio を起動します。

  2. スタート ウィンドウで、 [新しいプロジェクトの作成] を選択します。

  3. [新しいプロジェクトの作成] ページで、検索ボックスに「ソリューション」と入力します。 [空のソリューション] テンプレートを選択して、[次へ] を選択します。

    Blank solution template in Visual Studio

  4. [新しいプロジェクトの構成] ページで、[ソリューション名] ボックスに「ClassLibraryProjects」と入力します。 次に、 [作成] を選択します。

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

  1. "StringLibrary" という名前の新しい .NET クラス ライブラリ プロジェクトをソリューションに追加します。

    1. ソリューション エクスプローラーでソリューションを右クリックし、[追加]>[新しいプロジェクト] の順に選択します。

    2. [新しいプロジェクトの追加] ページで、検索ボックスに「ライブラリ」と入力します。 言語の一覧から [C#] または [Visual Basic] を選択し、次に、プラットフォームの一覧から [すべてのプラットフォーム] を選択します。 [クラス ライブラリ] テンプレートを選んでから、[次へ] を選択します。

    3. [新しいプロジェクトの構成] ページで、[プロジェクト名] ボックスに「StringLibrary」と入力してから、[次へ] を選択します。

    4. [追加情報] ページで [.NET 8 (プレビュー)] を選択して、[作成] を選択します。

  2. 確実にライブラリのターゲットが正しいバージョンの .NET になっていることを確かめます。 ソリューション エクスプローラー でライブラリ プロジェクトを右クリックし、[プロパティ] を選択します。 [ターゲット フレームワーク] テキスト ボックスに、.NET 7.0 がプロジェクトのターゲットになっていることが示されています。

  3. Visual Basic を使用している場合は、[ルート名前空間] テキスト ボックス内のテキストをクリアします。

    Project properties for the class library

    プロジェクトごとに、そのプロジェクト名に対応する名前空間が Visual Basic によって自動的に作成されます。 このチュートリアルでは、コード ファイルで namespace キーワードを使用して、最上位の名前空間を定義します。

  4. Class1.cs または Class1.vb のコード ウィンドウ内のコードを次のコードに置き換えて、ファイルを保存します。 使用する言語で表示されていない場合は、ページの上部にある言語セレクターを変更します。

    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 を返します。

    StartsWithUpper は、String クラスのメンバーであるかのように呼び出すことができる拡張メソッドとして実装されます。 C# コードの string の後の疑問符 (?) は、文字列が null である可能性があることを示します。

  5. メニュー バーで、[ビルド]>[ソリューションのビルド] を選択するか、Ctrl+Shift+B キーを押して、プロジェクトがエラーなくコンパイルされることを確認します。

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

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

  1. "ShowCase" という名前の新しい .NET コンソール アプリケーションをソリューションに追加します。

    1. ソリューション エクスプローラーで、ソリューションを右クリックし、[追加]>[新しいプロジェクト] の順に選択します。

    2. [新しいプロジェクトの追加] ページで、検索ボックスに「コンソール」と入力します。 言語の一覧から [C#] または [Visual Basic] を選択し、次に、プラットフォームの一覧から [すべてのプラットフォーム] を選択します。

    3. [コンソール アプリケーション] テンプレートを選んでから、[次へ] を選択します。

    4. [新しいプロジェクトの構成] ページで、[プロジェクト名] ボックスに「ShowCase」と入力します。 その後、 [次へ] をクリックします。

    5. [追加情報] ページの [フレームワーク] ボックスの [.NET 8 (プレビュー)] を選択します。 次に、 [作成] を選択します。

  2. Program.cs または Program.vb ファイルのコード ウィンドウで、すべてのコードを次のコードに置き換えます。

    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}");
                Console.WriteLine("Begins with uppercase? " +
                     $"{(input.StartsWithUpper() ? "Yes" : "No")}");
                Console.WriteLine();
                row += 4;
            } 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 キーを押すと、アプリケーションが終了し、コンソール ウィンドウが閉じます。

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

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

  1. ソリューション エクスプローラーで、ShowCase プロジェクトの [依存関係] ノードを右クリックして、[プロジェクト参照の追加] を選びます。

    Add reference context menu in Visual Studio

  2. [参照マネージャー] ダイアログ ボックスで、[StringLibrary] プロジェクトを選び、[OK] を選びます。

    Reference Manager dialog with StringLibrary selected

アプリを実行する

  1. ソリューション エクスプローラーで、ShowCase プロジェクトを右クリックして、コンテキスト メニューで [スタートアップ プロジェクトに設定] を選びます。

    Visual Studio project context menu to set startup project

  2. Ctrl+F5 キーを押して、デバッグなしでプログラムをコンパイルして実行します。

  3. 文字列を入力して Enter キーを押してプログラムを実行し、Enter キーを押して終了します。

    Console window with ShowCase running

その他の技術情報

次のステップ

このチュートリアルでは、クラス ライブラリを作成しました。 次のチュートリアルでは、そのクラス ライブラリを単体テストする方法について説明します。

または、自動化された単体テストをスキップし、NuGet パッケージを作成してそのライブラリを共有する方法を学習することもできます。

または、コンソール アプリを公開する方法を学習することもできます。 このチュートリアルで作成したソリューションからそのコンソール アプリを発行すると、それに付属するクラス ライブラリは .dll ファイルとなります。

このチュートリアルでは、1 つの文字列処理メソッドを含むシンプルなクラス ライブラリを作成します。

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

クラス ライブラリを作成するときに、NuGet パッケージとして、またはそれを使用するアプリケーションにバンドルされているコンポーネントとして配布できます。

前提条件

ソリューションを作成する

まず、クラス ライブラリ プロジェクトを配置する空のソリューションを作成します。 1 つの Visual Studio のソリューションは、1 つまたは複数のプロジェクトのコンテナーとして機能します。 さらに関連するプロジェクトを同じソリューションに追加します。

空のソリューションを作成するには:

  1. Visual Studio を起動します。

  2. スタート ウィンドウで、 [新しいプロジェクトの作成] を選択します。

  3. [新しいプロジェクトの作成] ページで、検索ボックスに「ソリューション」と入力します。 [空のソリューション] テンプレートを選択して、[次へ] を選択します。

    Blank solution template in Visual Studio

  4. [新しいプロジェクトの構成] ページで、[ソリューション名] ボックスに「ClassLibraryProjects」と入力します。 次に、 [作成] を選択します。

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

  1. "StringLibrary" という名前の新しい .NET クラス ライブラリ プロジェクトをソリューションに追加します。

    1. ソリューション エクスプローラーでソリューションを右クリックし、[追加]>[新しいプロジェクト] の順に選択します。

    2. [新しいプロジェクトの追加] ページで、検索ボックスに「ライブラリ」と入力します。 言語の一覧から [C#] または [Visual Basic] を選択し、次に、プラットフォームの一覧から [すべてのプラットフォーム] を選択します。 [クラス ライブラリ] テンプレートを選んでから、[次へ] を選択します。

    3. [新しいプロジェクトの構成] ページで、[プロジェクト名] ボックスに「StringLibrary」と入力してから、[次へ] を選択します。

    4. [追加情報] ページで、[.NET 7 (標準期間サポート)] を選んでから、[作成] を選択します。

  2. 確実にライブラリのターゲットが正しいバージョンの .NET になっていることを確かめます。 ソリューション エクスプローラー でライブラリ プロジェクトを右クリックし、[プロパティ] を選択します。 [ターゲット フレームワーク] テキスト ボックスに、.NET 7.0 がプロジェクトのターゲットになっていることが示されています。

  3. Visual Basic を使用している場合は、[ルート名前空間] テキスト ボックス内のテキストをクリアします。

    Project properties for the class library

    プロジェクトごとに、そのプロジェクト名に対応する名前空間が Visual Basic によって自動的に作成されます。 このチュートリアルでは、コード ファイルで namespace キーワードを使用して、最上位の名前空間を定義します。

  4. Class1.cs または Class1.vb のコード ウィンドウ内のコードを次のコードに置き換えて、ファイルを保存します。 使用する言語で表示されていない場合は、ページの上部にある言語セレクターを変更します。

    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 を返します。

    StartsWithUpper は、String クラスのメンバーであるかのように呼び出すことができる拡張メソッドとして実装されます。 C# コードの string の後の疑問符 (?) は、文字列が null である可能性があることを示します。

  5. メニュー バーで、[ビルド]>[ソリューションのビルド] を選択するか、Ctrl+Shift+B キーを押して、プロジェクトがエラーなくコンパイルされることを確認します。

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

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

  1. "ShowCase" という名前の新しい .NET コンソール アプリケーションをソリューションに追加します。

    1. ソリューション エクスプローラーで、ソリューションを右クリックし、[追加]>[新しいプロジェクト] の順に選択します。

    2. [新しいプロジェクトの追加] ページで、検索ボックスに「コンソール」と入力します。 言語の一覧から [C#] または [Visual Basic] を選択し、次に、プラットフォームの一覧から [すべてのプラットフォーム] を選択します。

    3. [コンソール アプリケーション] テンプレートを選んでから、[次へ] を選択します。

    4. [新しいプロジェクトの構成] ページで、[プロジェクト名] ボックスに「ShowCase」と入力します。 その後、 [次へ] をクリックします。

    5. [追加情報] ページの [フレームワーク] ボックスの [.NET 7 (標準期間サポート)] を選択します。 次に、 [作成] を選択します。

  2. Program.cs または Program.vb ファイルのコード ウィンドウで、すべてのコードを次のコードに置き換えます。

    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}");
                Console.WriteLine("Begins with uppercase? " +
                     $"{(input.StartsWithUpper() ? "Yes" : "No")}");
                Console.WriteLine();
                row += 4;
            } 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 キーを押すと、アプリケーションが終了し、コンソール ウィンドウが閉じます。

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

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

  1. ソリューション エクスプローラーで、ShowCase プロジェクトの [依存関係] ノードを右クリックして、[プロジェクト参照の追加] を選びます。

    Add reference context menu in Visual Studio

  2. [参照マネージャー] ダイアログ ボックスで、[StringLibrary] プロジェクトを選び、[OK] を選びます。

    Reference Manager dialog with StringLibrary selected

アプリを実行する

  1. ソリューション エクスプローラーで、ShowCase プロジェクトを右クリックして、コンテキスト メニューで [スタートアップ プロジェクトに設定] を選びます。

    Visual Studio project context menu to set startup project

  2. Ctrl+F5 キーを押して、デバッグなしでプログラムをコンパイルして実行します。

  3. 文字列を入力して Enter キーを押してプログラムを実行し、Enter キーを押して終了します。

    Console window with ShowCase running

その他の技術情報

次のステップ

このチュートリアルでは、クラス ライブラリを作成しました。 次のチュートリアルでは、そのクラス ライブラリを単体テストする方法について説明します。

または、自動化された単体テストをスキップし、NuGet パッケージを作成してそのライブラリを共有する方法を学習することもできます。

または、コンソール アプリを公開する方法を学習することもできます。 このチュートリアルで作成したソリューションからそのコンソール アプリを発行すると、それに付属するクラス ライブラリは .dll ファイルとなります。

このチュートリアルでは、1 つの文字列処理メソッドを含むシンプルなクラス ライブラリを作成します。

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

クラス ライブラリを作成するときに、NuGet パッケージとして、またはそれを使用するアプリケーションにバンドルされているコンポーネントとして配布できます。

前提条件

ソリューションを作成する

まず、クラス ライブラリ プロジェクトを配置する空のソリューションを作成します。 1 つの Visual Studio のソリューションは、1 つまたは複数のプロジェクトのコンテナーとして機能します。 さらに関連するプロジェクトを同じソリューションに追加します。

空のソリューションを作成するには:

  1. Visual Studio を起動します。

  2. スタート ウィンドウで、 [新しいプロジェクトの作成] を選択します。

  3. [新しいプロジェクトの作成] ページで、検索ボックスに「ソリューション」と入力します。 [空のソリューション] テンプレートを選択して、[次へ] を選択します。

    Blank solution template in Visual Studio

  4. [新しいプロジェクトの構成] ページで、[ソリューション名] ボックスに「ClassLibraryProjects」と入力します。 次に、 [作成] を選択します。

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

  1. "StringLibrary" という名前の新しい .NET クラス ライブラリ プロジェクトをソリューションに追加します。

    1. ソリューション エクスプローラーでソリューションを右クリックし、[追加]>[新しいプロジェクト] の順に選択します。

    2. [新しいプロジェクトの追加] ページで、検索ボックスに「ライブラリ」と入力します。 言語の一覧から [C#] または [Visual Basic] を選択し、次に、プラットフォームの一覧から [すべてのプラットフォーム] を選択します。 [クラス ライブラリ] テンプレートを選んでから、[次へ] を選択します。

    3. [新しいプロジェクトの構成] ページで、[プロジェクト名] ボックスに「StringLibrary」と入力してから、[次へ] を選択します。

    4. [追加情報] ページで、[.NET 6 (長期的なサポート)] を選んでから、[作成] を選択します。

  2. 確実にライブラリのターゲットが正しいバージョンの .NET になっていることを確かめます。 ソリューション エクスプローラー でライブラリ プロジェクトを右クリックし、[プロパティ] を選択します。 [ターゲット フレームワーク] テキスト ボックスに、.NET 6.0 がプロジェクトのターゲットになっていることが示されています。

  3. Visual Basic を使用している場合は、[ルート名前空間] テキスト ボックス内のテキストをクリアします。

    Project properties for the class library

    プロジェクトごとに、そのプロジェクト名に対応する名前空間が Visual Basic によって自動的に作成されます。 このチュートリアルでは、コード ファイルで namespace キーワードを使用して、最上位の名前空間を定義します。

  4. Class1.cs または Class1.vb のコード ウィンドウ内のコードを次のコードに置き換えて、ファイルを保存します。 使用する言語で表示されていない場合は、ページの上部にある言語セレクターを変更します。

    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 を返します。

    StartsWithUpper は、String クラスのメンバーであるかのように呼び出すことができる拡張メソッドとして実装されます。 C# コードの string の後の疑問符 (?) は、文字列が null である可能性があることを示します。

  5. メニュー バーで、[ビルド]>[ソリューションのビルド] を選択するか、Ctrl+Shift+B キーを押して、プロジェクトがエラーなくコンパイルされることを確認します。

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

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

  1. "ShowCase" という名前の新しい .NET コンソール アプリケーションをソリューションに追加します。

    1. ソリューション エクスプローラーで、ソリューションを右クリックし、[追加]>[新しいプロジェクト] の順に選択します。

    2. [新しいプロジェクトの追加] ページで、検索ボックスに「コンソール」と入力します。 言語の一覧から [C#] または [Visual Basic] を選択し、次に、プラットフォームの一覧から [すべてのプラットフォーム] を選択します。

    3. [コンソール アプリケーション] テンプレートを選んでから、[次へ] を選択します。

    4. [新しいプロジェクトの構成] ページで、[プロジェクト名] ボックスに「ShowCase」と入力します。 その後、 [次へ] をクリックします。

    5. [追加情報] ページの [フレームワーク] ボックスの [.NET 6 (長期的なサポート)] を選択します。 次に、 [作成] を選択します。

  2. Program.cs または Program.vb ファイルのコード ウィンドウで、すべてのコードを次のコードに置き換えます。

    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}");
                Console.WriteLine("Begins with uppercase? " +
                     $"{(input.StartsWithUpper() ? "Yes" : "No")}");
                Console.WriteLine();
                row += 4;
            } 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 キーを押すと、アプリケーションが終了し、コンソール ウィンドウが閉じます。

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

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

  1. ソリューション エクスプローラーで、ShowCase プロジェクトの [依存関係] ノードを右クリックして、[プロジェクト参照の追加] を選びます。

    Add reference context menu in Visual Studio

  2. [参照マネージャー] ダイアログ ボックスで、[StringLibrary] プロジェクトを選び、[OK] を選びます。

    Reference Manager dialog with StringLibrary selected

アプリを実行する

  1. ソリューション エクスプローラーで、ShowCase プロジェクトを右クリックして、コンテキスト メニューで [スタートアップ プロジェクトに設定] を選びます。

    Visual Studio project context menu to set startup project

  2. Ctrl+F5 キーを押して、デバッグなしでプログラムをコンパイルして実行します。

  3. 文字列を入力して Enter キーを押してプログラムを実行し、Enter キーを押して終了します。

    Console window with ShowCase running

その他の技術情報

次のステップ

このチュートリアルでは、クラス ライブラリを作成しました。 次のチュートリアルでは、そのクラス ライブラリを単体テストする方法について説明します。

または、自動化された単体テストをスキップし、NuGet パッケージを作成してそのライブラリを共有する方法を学習することもできます。

または、コンソール アプリを公開する方法を学習することもできます。 このチュートリアルで作成したソリューションからそのコンソール アプリを発行すると、それに付属するクラス ライブラリは .dll ファイルとなります。