了解 C# 中的访问修饰符
访问修饰符是 C# 中面向对象编程的基本部分。它们决定代码中类型和成员的可见性和可访问性,有助于实现封装的概念。在本文中,我们将以清晰实用的方式探索 C# 中可用的所有访问修饰符。
**什么是访问修饰符?**
访问修饰符是定义程序各个部分如何访问类、方法、属性和代码的其他成员的关键字。让我们探索下面的修饰符:
让我们详细了解每一个!
**1. 公众**
公共修饰符是所有修饰符中最宽容的。可以从代码中的任何位置访问公共成员,无论是在同一个程序集内还是在引用项目的其他程序集中。
public class Customer { // Propriedade pública que pode ser acessada de qualquer lugar public string Name { get; set; } // Método público que pode ser chamado de qualquer lugar public void DisplayInfo() { Console.WriteLine($"Customer: {Name}"); } }
**2. 私人**
私有访问修饰符的限制性最强。私有成员只能在声明它们的类内访问。
public class BankAccount { // Campo privado que só pode ser acessado dentro desta classe private decimal _balance; // Método privado que só pode ser chamado dentro desta classe private void ValidateAmount(decimal amount) { if (amount <= 0) throw new ArgumentException("O valor deve ser maior que zero"); } public void Deposit(decimal amount) { ValidateAmount(amount); // Ok: método privado chamado dentro da classe _balance += amount; // Ok: campo privado acessado dentro da classe } }
**3. 受保护**
protected 修饰符允许在类本身中以及从该类继承的类(子类)访问成员。
public class Animal { // Campo protegido que pode ser acessado por classes filhas protected string Species; // Método protegido que pode ser chamado por classes filhas protected virtual void MakeSound() { Console.WriteLine("Som genérico de animal"); } } public class Dog : Animal { public void Initialize() { Species = "Canino"; // Ok: campo protected acessado na classe filha MakeSound(); // Ok: método protected acessado na classe filha } }
**4. 内部**
internal 修饰符允许成员只能在同一个项目内被访问。
// Classe internal só pode ser usada dentro do mesmo projeto internal class ConfigurationManager { // Propriedade internal só pode ser acessada dentro do mesmo projeto internal string DatabaseConnection { get; set; } }
**结论**
访问修饰符是控制类成员的可见性和访问权限的强大工具。正确使用修饰符有助于:
保持良好的封装
减少代码不同部分之间的耦合
防止滥用你的课程
让代码维护更加简单