了解 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; }
}**结论**
访问修饰符是控制类成员的可见性和访问权限的强大工具。正确使用修饰符有助于:
保持良好的封装
减少代码不同部分之间的耦合
防止滥用你的课程
让代码维护更加简单