在C#编程中,访问修饰符(Access Modifiers)是控制类、方法、字段等成员可见性和访问权限的重要工具。掌握这些修饰符,不仅能提升代码的安全性,还能帮助你设计出结构更清晰、可维护性更强的程序。
访问修饰符决定了其他代码是否可以访问某个类或其成员(如字段、属性、方法等)。C# 提供了以下几种主要的访问修饰符:
public:完全公开,任何地方都能访问。private:私有,仅在当前类内部可访问。protected:受保护,当前类及其派生类可访问。internal:内部,同一程序集(Assembly)内可访问。使用 public 修饰的成员可以在任何地方被访问,包括其他类、其他项目(只要引用了该程序集)。
public class Car{ public string Brand = "Toyota"; public void StartEngine() { Console.WriteLine("Engine started!"); }}// 在另一个类中可以访问Car myCar = new Car();Console.WriteLine(myCar.Brand); // ✅ 可以访问myCar.StartEngine(); // ✅ 可以调用 private 是最严格的访问级别。只有定义它的类内部才能访问,外部完全不可见。
public class BankAccount{ private decimal balance = 1000m; public void Deposit(decimal amount) { if (amount > 0) balance += amount; // ✅ 类内部可以访问 } public decimal GetBalance() { return balance; // ✅ 通过公共方法暴露私有数据 }}// 外部尝试访问会报错BankAccount account = new BankAccount();// Console.WriteLine(account.balance); // ❌ 编译错误! protected 允许当前类和它的子类访问该成员,常用于继承场景。
public class Animal{ protected string name = "Generic Animal"; protected void MakeSound() { Console.WriteLine("Some sound..."); }}public class Dog : Animal{ public void Bark() { Console.WriteLine($"{name} says: Woof!"); // ✅ 子类可访问 MakeSound(); // ✅ 子类可调用 }}Dog myDog = new Dog();// Console.WriteLine(myDog.name); // ❌ 外部不能访问myDog.Bark(); // ✅ 正常输出 internal 表示“同一程序集内可见”。如果你的项目由多个 .cs 文件组成但属于同一个项目(即同一个 .dll 或 .exe),那么它们可以互相访问 internal 成员。
// File1.csinternal class Helper{ internal static void Log(string message) { Console.WriteLine($"[LOG] {message}"); }}// File2.cs(同一项目中)public class Program{ public static void Main() { Helper.Log("Application started."); // ✅ 同一程序集内可访问 }}// 如果在另一个项目中引用此程序集,则无法访问 Helper 类 合理使用 C#访问修饰符 是编写高质量代码的关键:
private,通过 public 属性或方法暴露必要功能(封装原则)。internal,若希望被其他项目使用,应声明为 public。protected 允许子类扩展父类行为,同时隐藏实现细节。internal 限制 API 的暴露范围,避免外部误用。记住这句口诀:“能私不公,能内不外”——在满足功能的前提下,尽量使用最小的访问权限。
希望通过本教程,你已经掌握了 C#访问修饰符 的核心用法。无论是 public、private、protected 还是 internal,它们都是你构建健壮、安全、可维护 C# 应用的基石。
本文由主机测评网于2025-12-09发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025125109.html