访问修饰符 public、protected、internal 或 private (图)

时间:2020-12-02 15:09:32

访问修饰符publicprotectedinternalprivate

 

Private  \  Public  \  internal \  Protected \ Protected internal

 

 

使用访问修饰符 publicprotectedinternalprivate 可以为成员指定以下声明的访问级别之一。

声明的可访问性

含义

public

访问不受限制。

protected

访问仅限于包含类或从包含类派生的类型。

internal

访问仅限于当前程序集。

protected  internal

访问仅限于从包含类派生的当前程序集或类型。

private

访问仅限于包含类型。

 

internal 其实相当于private internal 

private internal
protected internal 

 

一个成员或类型只能有一个访问修饰符,但使用 protectedinternal 组合时除外。

命名空间上不允许使用访问修饰符。 命名空间没有访问限制。

根据出现成员声明的上下文,只允许某些声明的可访问性。 如果在成员声明中未指定访问修饰符,则使用默认的可访问性。

不嵌套在其他类型中的*类型的可访问性只能是 internal 或 public。 这些类型的默认可访问性是 internal。

嵌套类型是其他类型的成员,它们可以具有下表所示的声明的可访问性。

类别

默认的成员可访问性

该成员允许的声明的可访问性

enum

public

class

private

public

protected

internal

private

protected  internal

interface

public

struct

private

public

internal

private

嵌套类型的可访问性取决于它的可访问域,该域是由已声明的成员可访问性和直接包含类型的可访问域这二者共同确定的。但是,嵌套类型的可访问域不能超出包含类型的可访问域。

 

 

public:  对任何类和成员都公开,无限制访问;
protected:仅仅对该类以及该类的派生类公开;
private:
仅仅对该类公开;
internal:只能值包含该类的程序集中访问该类(只是单独的项目,而不是整个解决方案);
protected internal:只能在本类,派生类或者包含该类的程序集中访问.

 访问修饰符 public、protected、internal 或 private (图)