共用方式為


教學課程:使用 Visual Studio 建立 .NET 類別程式庫

在本教學課程中,您會建立包含單一字串處理方法的簡單類別程式庫。

類別程式庫會定義應用程式所呼叫的類型和方法。 如果程式庫以 .NET Standard 2.0 為目標,則任何支援 .NET Standard 2.0 的 .NET 實作 (包括 .NET Framework) 都可以呼叫它。 如果程式庫以 .NET 8 為目標,則任何以 .NET 8 為目標的應用程式都可以呼叫它。 本教學課程示範如何以 .NET 8 為目標。

當您建立類別程式庫時,您可以將它散發為 NuGet 套件,或散發為與使用它的應用程式套件搭配的元件。

先決條件

建立解決方案

首先,建立空白解決方案來放入類別庫專案。 Visual Studio 解決方案可作為一或多個專案的容器。 您會將相關專案新增至相同的解決方案。

若要建立空白解決方案:

  1. 啟動 Visual Studio。

  2. 在開始視窗中,選擇 Create a new project (建立新專案)。

  3. 建立新專案 頁面上,在搜尋方塊中輸入 解決方案 。 選擇 [空白解決方案 ] 範本,然後選擇 [下一步]。

    Visual Studio 中的空白解決方案範本

  4. [設定您的新專案] 頁面上,在 [解決方案名稱] 方塊中輸入 ClassLibraryProjects。 然後選擇 Create (建立)。

建立類別庫專案

  1. 將名為 “StringLibrary” 的新 .NET 類別庫專案新增至解決方案。

    1. 以滑鼠右鍵按一下 [方案總管] 中的解決方案,然後選取 [新增>專案]。

    2. [新增專案 ] 頁面上,在搜尋方塊中輸入 library 。 從 [語言] 清單中選擇 C#Visual Basic ,然後從 [平臺] 清單中選擇 [所有平臺 ]。 選擇 [類別程式庫] 範本,然後選擇 [ 下一步]。

    3. [設定您的新專案] 頁面上,在 [專案名稱] 方塊中輸入 StringLibrary,然後選擇 [下一步]。

    4. [其他資訊] 頁面上,選取 [.NET 8],然後選擇 [建立]。

  2. 檢查以確定程式庫以正確的 .NET 版本為目標。 以滑鼠右鍵按一下 [方案總管] 中的程式庫專案,然後選取 [屬性]。 [ 目標架構] 文字方塊顯示專案以 .NET 8.0 為目標。

  3. 如果您使用的是 Visual Basic,請清除 [根命名空間] 文字方塊中的文字。

    類別庫的專案屬性

    針對每個專案,Visual Basic 會自動建立對應至專案名稱的命名空間。 在本教學課程中,您會在程式碼檔中使用namespace關鍵字以定義最上層命名空間。

  4. Class1.csClass1.vb 的程式碼視窗中的程式碼取代為下列程式碼,然後儲存檔案。 如果未顯示您要使用的語言,請變更頁面頂端的語言選取器。

    namespace UtilityLibraries;
    
    public static class StringLibrary
    {
        public static bool StartsWithUpper(this string? str)
        {
            if (string.IsNullOrWhiteSpace(str))
                return false;
    
            return char.IsUpper(str[0]);
        }
    }
    
    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. [新增專案 ] 頁面上,在搜尋方塊中輸入 console 。 從 [語言] 清單中選擇 C#Visual Basic ,然後從 [平臺] 清單中選擇 [所有平臺 ]。

    3. 選擇 主控台應用程式 範本,然後選擇 下一步

    4. [設定您的新專案] 頁面上,在 [專案名稱] 方塊中輸入 ShowCase。 然後選擇 [下一步]。

    5. [其他資訊] 頁面上,選取 [架構] 方塊中的 .NET 8。 然後選擇 Create (建立)。

  2. Program.csProgram.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 鍵而不輸入字串,則應用程式會結束,且主控台視窗會關閉。

新增專案參考

一開始,新的主控台應用程式專案無法存取類別程式庫。 若要允許它呼叫類別庫中的方法,請建立類別庫專案的專案參考。

  1. [方案總管] 中,以滑鼠右鍵按一下 ShowCase 專案的 [相依性] 節點,然後選取 [新增專案參考]。

    在 Visual Studio 中新增參考內容功能表

  2. [參考管理員] 對話方塊中,選取 StringLibrary 專案,然後選取 [ 確定]。

    選取 StringLibrary 的「參考管理員」對話方塊

執行應用程式

  1. [方案總管] 中,以滑鼠右鍵按一下 ShowCase 專案,然後在操作功能表中選取 [ 設定為啟動專案 ]。

    Visual Studio 專案內容功能表,以設定啟動專案

  2. Ctrl+F5 編譯並運行程序,無需調試。

  3. 輸入字串並按 Enter 鍵來試用該程序,然後按 Enter 鍵退出。

    執行 ShowCase 的主控台視窗

其他資源

後續步驟

在本教學課程中,您已建立類別庫。 在下一個教學課程中,您將瞭解如何對類別程式庫進行單元測試。

或者,您可以略過自動化單元測試,並瞭解如何建立 NuGet 套件來共用程式庫:

或瞭解如何發佈主控台應用程式。 如果您從本教學課程中建立的解決方案發佈主控台應用程式,類別程式庫會以 .dll 檔案的形式隨之而來。