📜  c# 隔离级别 - C# (1)

📅  最后修改于: 2023-12-03 15:29:48.447000             🧑  作者: Mango

C# 隔离级别

在 C# 中,隔离级别是指类的成员(字段、属性、方法等)对外部代码的可见性和访问权限的控制程度。C# 中的隔离级别有四种,从最大限度的隔离到最小限度的隔离依次为:privateprotectedinternalpublic

private 隔离级别

private 是最小限度的访问权限,它将成员限制在其所属类的范围内(包括内部和嵌套类中),对外部代码完全不可见。以下是一个 private 成员的示例:

class Person {
    private string _name; // 私有字段

    private void SayHello() { // 私有方法
        Console.WriteLine("Hello, I'm " + _name + ".");
    }
}
protected 隔离级别

protected 可以将成员限制在其所属类的范围内和子类的范围内可见。它在 C# 中主要用于继承的实现中。以下是一个 protected 成员的示例:

class Animal {
    protected string _name; // 受保护的字段

    protected void SayHello() { // 受保护的方法
        Console.WriteLine("Hello, I'm " + _name + ".");
    }
}

class Cat : Animal {
    public void SetName(string name) {
        _name = name; // 子类可以访问父类的受保护成员
    }

    public void Greet() {
        SayHello(); // 子类可以调用父类的受保护方法
    }
}
internal 隔离级别

internal 将成员限制在定义它们的程序集中可见,对于其他程序集则不可见。这意味着,当你编写了一个库并将其打包成单个程序集时,你可以使用 internal 来隐藏库的一些细节,并让它们只能在程序集内部可见。以下是一个 internal 成员的示例:

// 在同一程序集中

class Car {
    internal string _model; // 内部字段
    internal void Run() { // 内部方法
        Console.WriteLine("The car is running.");
    }
}

class Program {
    static void Main(string[] args) {
        Car car = new Car();
        car._model = "BMW";
        car.Run();
    }
}
public 隔离级别

public 是最大限度的访问权限,它让成员对所有代码都可见和可访问。以下是一个 public 成员的示例:

public class Calculator {
    public int Add(int a, int b) { // 公共方法
        return a + b;
    }
}
总结

C# 中的隔离级别可以帮助程序员实现对类成员的细粒度控制,从而提高代码的可维护性、重用性和安全性。在使用的时候,我们需要根据实际情况来决定成员的隔离级别,以便在不同的场景下最大化发挥出其作用。