教學課程:使用 Visual Studio 建立 .NET 類別庫
在本教學課程中,您會建立一個含有單一字串處理方法的簡單類別庫。
「類別庫」會定義應用程式所呼叫的類型和方法。 如果程式庫以 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 解決方案做為一或多個專案的容器。 請將其他相關專案新增至相同的解決方案。
若要建立空白解決方案:
啟動 Visual Studio。
在開始視窗中,選擇 [建立新專案]。
在 [建立新專案] 頁面上的搜尋方塊中輸入解決方案。 依序選擇空白解決方案範本和 [下一步]。
在 [設定新專案] 頁面上的 [解決方案名稱] 方塊中輸入 ClassLibraryProjects。 接著,選擇 [建立]。
建立類別庫專案
將名為「StringLibrary」的新 .NET 類別庫專案新增至解決方案。
在 [方案總管] 中以滑鼠右鍵按一下該解決方案,然後選取 [新增]>[新專案]。
在 [新增專案] 頁面上的搜尋方塊中輸入程式庫。 從語言清單中選擇 [C#] 或 [Visual Basic],然後從平台清單中選擇 [所有平台]。 依序選擇類別庫範本和 [下一步]。
在 [設定新專案] 頁面上的 [專案名稱] 方塊中輸入 StringLibraryy,然後選擇 [下一步]。
在 [其他資訊] 頁面上,選取 [.NET 8 (預覽)],然後選擇 [建立]。
請檢查,確定程式庫以正確的 .NET 版本為目標。 以滑鼠右鍵按一下 [方案總管] 中的程式庫專案,然後選取 [屬性]。 [目標 Framework] 文字方塊顯示專案的目標為 .NET 7.0。
如果您使用 Visual Basic,請清除 [根命名空間] 文字方塊中的文字。
Visual Basic 會為每個專案自動建立與專案名稱對應的命名空間。 在本教學課程中,您會使用程式碼檔案中的
namespace
關鍵字定義最上層的命名空間。以下列程式碼會取代 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。在功能表列上選取 [建置]>[建置解決方案],或按 Ctrl+Shift+B,驗證專案編譯是否沒有錯誤。
將主控台應用程式新增至解決方案
新增使用類別庫的主控台應用程式。 應用程式會提示使用者輸入字串,並回報字串是否以大寫字元開頭。
將名為「展示工具」的新 .NET 主控台應用程式加入解決方案。
在 [方案總管] 中以滑鼠右鍵按一下該解決方案,然後選取 [新增]>[新專案]。
在 [新增專案] 頁面上的搜尋方塊中輸入主控台。 從語言清單中選擇 [C#] 或 [Visual Basic],然後從平台清單中選擇 [所有平台]。
依序選擇主控台應用程式範本和 [下一步]。
在 [設定新專案] 頁面上的 [專案名稱] 方塊中輸入展示工具。 接著,選擇 [下一步]。
在 [其他資訊] 頁面上的 [Framework] 方塊中,選取 [.NET 8 (預覽)]。 接著,選擇 [建立]。
在 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 鍵,應用程式會終止且主控台視窗會關閉。
新增專案參考
一開始,新的主控台應用程式專案沒有類別庫的存取權。 若要讓該專案在類別庫中呼叫方法,請建立類別庫專案的專案參考。
在[方案總管] 中,以滑鼠右鍵按一下
ShowCase
專案的 [相依性] 節點,然後選取 [加入專案參考]。在 [參考管理員] 對話方塊中,依序選取 [StringLibrary] 專案和 [確定]。
執行應用程式
在 方案總管 中,以滑鼠右鍵按一下 ShowCase 專案,然後在內容功能表中選取 [設定為啟始專案]。
按下 Ctrl+F5 可省略偵錯步驟,直接編譯和執行程式。
輸入字串並按下 Enter 鍵以試用程式。再次按下 Enter 鍵即可結束程式。
其他資源
下一步
在本教學課程中,您已建立類別庫。 在下一個教學課程中,您會了解如何為類別庫進行單元測試。
您也可以跳過自動化單元測試,並了解如何透過建立 NuGet 封裝來共用程式庫:
或了解如何發佈主控台應用程式。 如果您透過在本教學課程中建立的解決方案發佈主控台應用程式,類別庫會將其當作 .dll 檔案使用。
在本教學課程中,您會建立一個含有單一字串處理方法的簡單類別庫。
「類別庫」會定義應用程式所呼叫的類型和方法。 如果程式庫以 NET Standard 2.0 為目標,則可以由任何支援 .NET Standard 2.0 的 .NET 實作 (包括 .NET Framework) 呼叫。 如果程式庫以 .NET 7 為目標,則任何以 .NET 7 目標的應用程式都能加以呼叫。 本教學課程說明如何以 .NET 7 為目標。
當您建立類別庫時,您可以將其發佈為 NuGet 封裝,或可以和使用它的應用程式配成套件的元件。
必要條件
已安裝 .NET 桌面開發工作負載的 Visual Studio 2022 17.4 版本。 您選取此工作負載時,即會自動安裝 .NET 7 SDK。
如需詳細資訊,請參閱使用 Visual Studio 安裝 .NET SDK (部分機器翻譯)。
建立解決方案
首先,建立空白解決方案,將類別庫專案放入其中。 將 Visual Studio 解決方案做為一或多個專案的容器。 請將其他相關專案新增至相同的解決方案。
若要建立空白解決方案:
啟動 Visual Studio。
在開始視窗中,選擇 [建立新專案]。
在 [建立新專案] 頁面上的搜尋方塊中輸入解決方案。 依序選擇空白解決方案範本和 [下一步]。
在 [設定新專案] 頁面上的 [解決方案名稱] 方塊中輸入 ClassLibraryProjects。 接著,選擇 [建立]。
建立類別庫專案
將名為「StringLibrary」的新 .NET 類別庫專案新增至解決方案。
在 [方案總管] 中以滑鼠右鍵按一下該解決方案,然後選取 [新增]>[新專案]。
在 [新增專案] 頁面上的搜尋方塊中輸入程式庫。 從語言清單中選擇 [C#] 或 [Visual Basic],然後從平台清單中選擇 [所有平台]。 依序選擇類別庫範本和 [下一步]。
在 [設定新專案] 頁面上的 [專案名稱] 方塊中輸入 StringLibraryy,然後選擇 [下一步]。
在 [其他資訊] 頁面上,選取 [.NET 7 (標準字詞支援)],然後選擇 [建立]。
請檢查,確定程式庫以正確的 .NET 版本為目標。 以滑鼠右鍵按一下 [方案總管] 中的程式庫專案,然後選取 [屬性]。 [目標 Framework] 文字方塊顯示專案的目標為 .NET 7.0。
如果您使用 Visual Basic,請清除 [根命名空間] 文字方塊中的文字。
Visual Basic 會為每個專案自動建立與專案名稱對應的命名空間。 在本教學課程中,您會使用程式碼檔案中的
namespace
關鍵字定義最上層的命名空間。以下列程式碼會取代 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。在功能表列上選取 [建置]>[建置解決方案],或按 Ctrl+Shift+B,驗證專案編譯是否沒有錯誤。
將主控台應用程式新增至解決方案
新增使用類別庫的主控台應用程式。 應用程式會提示使用者輸入字串,並回報字串是否以大寫字元開頭。
將名為「展示工具」的新 .NET 主控台應用程式加入解決方案。
在 [方案總管] 中以滑鼠右鍵按一下該解決方案,然後選取 [新增]>[新專案]。
在 [新增專案] 頁面上的搜尋方塊中輸入主控台。 從語言清單中選擇 [C#] 或 [Visual Basic],然後從平台清單中選擇 [所有平台]。
依序選擇主控台應用程式範本和 [下一步]。
在 [設定新專案] 頁面上的 [專案名稱] 方塊中輸入展示工具。 接著,選擇 [下一步]。
在 [其他資訊] 頁面上的 [Framework] 方塊中,選取 [.NET 7 (標準字詞支援)]。 接著,選擇 [建立]。
在 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 鍵,應用程式會終止且主控台視窗會關閉。
新增專案參考
一開始,新的主控台應用程式專案沒有類別庫的存取權。 若要讓該專案在類別庫中呼叫方法,請建立類別庫專案的專案參考。
在[方案總管] 中,以滑鼠右鍵按一下
ShowCase
專案的 [相依性] 節點,然後選取 [加入專案參考]。在 [參考管理員] 對話方塊中,依序選取 [StringLibrary] 專案和 [確定]。
執行應用程式
在 方案總管 中,以滑鼠右鍵按一下 ShowCase 專案,然後在內容功能表中選取 [設定為啟始專案]。
按下 Ctrl+F5 可省略偵錯步驟,直接編譯和執行程式。
輸入字串並按下 Enter 鍵以試用程式。再次按下 Enter 鍵即可結束程式。
其他資源
下一步
在本教學課程中,您已建立類別庫。 在下一個教學課程中,您會了解如何為類別庫進行單元測試。
您也可以跳過自動化單元測試,並了解如何透過建立 NuGet 封裝來共用程式庫:
或了解如何發佈主控台應用程式。 如果您透過在本教學課程中建立的解決方案發佈主控台應用程式,類別庫會將其當作 .dll 檔案使用。
在本教學課程中,您會建立一個含有單一字串處理方法的簡單類別庫。
「類別庫」會定義應用程式所呼叫的類型和方法。 如果程式庫以 NET Standard 2.0 為目標,則可以由任何支援 .NET Standard 2.0 的 .NET 實作 (包括 .NET Framework) 呼叫。 如果程式庫以 .NET 6 為目標,則任何以 .NET 6 目標的應用程式都能加以呼叫。 本教學課程說明如何以 .NET 6 為目標。
當您建立類別庫時,您可以將其發佈為 NuGet 封裝,或可以和使用它的應用程式配成套件的元件。
必要條件
已安裝 .NET 桌面開發工作負載的 Visual Studio 2022 17.0.0 預覽版。 您選取此工作負載時,即會自動安裝 .NET 6 SDK。
如需詳細資訊,請參閱使用 Visual Studio 安裝 .NET SDK (部分機器翻譯)。
建立解決方案
首先,建立空白解決方案,將類別庫專案放入其中。 將 Visual Studio 解決方案做為一或多個專案的容器。 請將其他相關專案新增至相同的解決方案。
若要建立空白解決方案:
啟動 Visual Studio。
在開始視窗中,選擇 [建立新專案]。
在 [建立新專案] 頁面上的搜尋方塊中輸入解決方案。 依序選擇空白解決方案範本和 [下一步]。
在 [設定新專案] 頁面上的 [解決方案名稱] 方塊中輸入 ClassLibraryProjects。 接著,選擇 [建立]。
建立類別庫專案
將名為「StringLibrary」的新 .NET 類別庫專案新增至解決方案。
在 [方案總管] 中以滑鼠右鍵按一下該解決方案,然後選取 [新增]>[新專案]。
在 [新增專案] 頁面上的搜尋方塊中輸入程式庫。 從語言清單中選擇 [C#] 或 [Visual Basic],然後從平台清單中選擇 [所有平台]。 依序選擇類別庫範本和 [下一步]。
在 [設定新專案] 頁面上的 [專案名稱] 方塊中輸入 StringLibraryy,然後選擇 [下一步]。
在 [其他資訊] 頁面上,選取 [.NET 6 (長期支援)],然後選擇 [建立]。
請檢查,確定程式庫以正確的 .NET 版本為目標。 以滑鼠右鍵按一下 [方案總管] 中的程式庫專案,然後選取 [屬性]。 [目標 Framework] 文字方塊顯示專案的目標為 .NET 6.0。
如果您使用 Visual Basic,請清除 [根命名空間] 文字方塊中的文字。
Visual Basic 會為每個專案自動建立與專案名稱對應的命名空間。 在本教學課程中,您會使用程式碼檔案中的
namespace
關鍵字定義最上層的命名空間。以下列程式碼會取代 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。在功能表列上選取 [建置]>[建置解決方案],或按 Ctrl+Shift+B,驗證專案編譯是否沒有錯誤。
將主控台應用程式新增至解決方案
新增使用類別庫的主控台應用程式。 應用程式會提示使用者輸入字串,並回報字串是否以大寫字元開頭。
將名為「展示工具」的新 .NET 主控台應用程式加入解決方案。
在 [方案總管] 中以滑鼠右鍵按一下該解決方案,然後選取 [新增]>[新專案]。
在 [新增專案] 頁面上的搜尋方塊中輸入主控台。 從語言清單中選擇 [C#] 或 [Visual Basic],然後從平台清單中選擇 [所有平台]。
依序選擇主控台應用程式範本和 [下一步]。
在 [設定新專案] 頁面上的 [專案名稱] 方塊中輸入展示工具。 接著,選擇 [下一步]。
在 [其他資訊] 頁面上的 [Framework] 方塊中,選取 [.NET 6 (長期字詞支援)]。 接著,選擇 [建立]。
在 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 鍵,應用程式會終止且主控台視窗會關閉。
新增專案參考
一開始,新的主控台應用程式專案沒有類別庫的存取權。 若要讓該專案在類別庫中呼叫方法,請建立類別庫專案的專案參考。
在[方案總管] 中,以滑鼠右鍵按一下
ShowCase
專案的 [相依性] 節點,然後選取 [加入專案參考]。在 [參考管理員] 對話方塊中,依序選取 [StringLibrary] 專案和 [確定]。
執行應用程式
在 方案總管 中,以滑鼠右鍵按一下 ShowCase 專案,然後在內容功能表中選取 [設定為啟始專案]。
按下 Ctrl+F5 可省略偵錯步驟,直接編譯和執行程式。
輸入字串並按下 Enter 鍵以試用程式。再次按下 Enter 鍵即可結束程式。
其他資源
下一步
在本教學課程中,您已建立類別庫。 在下一個教學課程中,您會了解如何為類別庫進行單元測試。
您也可以跳過自動化單元測試,並了解如何透過建立 NuGet 封裝來共用程式庫:
或了解如何發佈主控台應用程式。 如果您透過在本教學課程中建立的解決方案發佈主控台應用程式,類別庫會將其當作 .dll 檔案使用。