MyClassLibrary,方案名稱可同或不同,確定建立。預設會產生 Class1.cs,重新命名並撰寫功能:
namespace MyClassLibrary
{
// public 必須標示,否則預設 internal 僅專案內可見
public sealed class StringHelper
{
public static string ToTitleCase(string input)
{
if (string.IsNullOrEmpty(input)) return input;
return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(input.ToLower());
}
public static string MaskEmail(string email)
{
if (string.IsNullOrEmpty(email) || !email.Contains("@")) return email;
var parts = email.Split('@');
string masked = parts[0].Length > 2
? parts[0][0] + new string('*', parts[0].Length - 2) + parts[0][^1]
: new string('*', parts[0].Length);
return $"{masked}@{parts[1]}";
}
}
// 若不想被繼承,加上 sealed
public class MathHelper
{
public static int Factorial(int n) => n <= 1 ? 1 : n * Factorial(n - 1);
}
}
MyClassLibrary\bin\Release\MyClassLibrary.dll (含 .pdb 符號檔)。MyClassLibrary。using MyClassLibrary; 即可使用。MyClassLibrary.dll 複製到目標專案資料夾 (如 Libs 目錄)。copy "$(SolutionDir)Libs\MyClassLibrary.dll" "$(TargetDir)"using MyClassLibrary;
using System;
class Program
{
static void Main()
{
Console.WriteLine(StringHelper.ToTitleCase("hello world")); // Hello World
Console.WriteLine(StringHelper.MaskEmail("user@example.com")); // u****r@example.com
Console.WriteLine(MathHelper.Factorial(5)); // 120
}
}
[assembly: AssemblyVersion("1.0.0.0")]。| 問題 | 原因 | 解決 |
|---|---|---|
| 「找不到類型或命名空間」 | 未加 using、類別非 public、DLL 未複製到輸出目錄 | 檢查 public、using、建置後事件複製 |
| 「無法載入檔案或組件」 | 目標框架不相容 (.NET 4.0 vs 4.5+)、缺少相依 DLL | 統一 Target Framework、NuGet 管理相依性 |
| 修改 DLL 後主專案未生效 | VS 快取舊版、DLL 被鎖定 | 清理解決方案、重新建置、重啟 VS |
原文連結:https://www.bianceng.cn/Programming/csharp/201410/45589.htm