Home
05 访问修饰符
Unity
05 访问修饰符
姜睿
姜睿
August 20, 2022
1 min

Table Of Contents

01
public 公有的
02
private 私有的
03
protected 受保护的
04
internal 内部的
05
protected internal 受保护的内部
06
访问权限表
  • 成员的隐式访问修饰符为 private

public 公有的

  • 所有的类都能访问公有成员。
访问修饰符同集 & 派生同集 & 不派生不同集 & 派生不同集 & 不派生
public

声明

1
2internal class Class
3{
4public int Field { get; set; }
5}
6

private 私有的

  • 只有自己的类才能访问,不包括继承。
访问修饰符同集 & 派生同集 & 不派生不同集 & 派生不同集 & 不派生
private

声明

1
2internal class Class
3{
4private int _field;
5private int m_field;
6}
7

例子

1
2internal class Base
3{
4private int _field;
5}
6
7internal class Derived : Base
8{
9public void Print()
10{
11// 'Base._field' is inaccessible
12Console.WriteLine(base._field);
13}
14}
15

protected 受保护的

  • 对其所有派生类可以访问。
访问修饰符同集 & 派生同集 & 不派生不同集 & 派生不同集 & 不派生
protected

声明

1
2internal class Class
3{
4protected int field;
5}
6

例子

1
2internal class Base
3{
4protected int field;
5}
6
7internal class Derived : Base
8{
9public void Print()
10{
11// accessible
12Console.WriteLine(base.field);
13}
14} 
15

internal 内部的

  • 对程序集内部的所有类可见。
访问修饰符同集 & 派生同集 & 不派生不同集 & 派生不同集 & 不派生
internal

声明

1
2internal class Class
3{
4internal int field;
5}
6

例子

1
2// @ Program.cs
3
4internal class Program
5{
6private static void Main(string[] args)
7{
8var _internal = new Internal(); // CS0122
9Console.WriteLine(_internal.field);
10}
11}
12
1
2// @ Internal.cs
3
4internal class Internal
5{
6internal int field;
7Internal(int field = 25)
8{
9this.field = field;
10}
11}
12

protected internal 受保护的内部

  • 对程序集内部的所有类和其派生类。
访问修饰符同集 & 派生同集 & 不派生不同集 & 派生不同集 & 不派生
protected internal

声明

1
2internal class Class
3{
4protected internal int field;
5}
6

例子

1
2// @ Program.cs
3
4public class Base
5{
6protected internal int field = 0;
7}
8
9internal class Program
10{
11private static void Main(string[] args)
12{
13Derived derived = new Derived();
14Console.WriteLine(derived.ToString()); // 0
15}
16}
17
1
2// @ Other.cs
3
4public class Derived : Base
5{
6public override string ToString()
7{
8// accessible
9return field.ToString();
10}
11}
12

访问权限表

  • 同集:在相同程序集。
  • 派生:调用的类是成员所在类的派生类。
  • ✅ 代表可访问,⛔ 代表不可访问。
访问修饰符同集 & 派生同集 & 不派生不同集 & 派生不同集 & 不派生
public
private
protected
internal
protected internal

Tags

#game developc#
姜睿

姜睿

学生

游戏设计学生

Expertise

游戏开发
平面设计

Related Posts

策略模式
策略模式
November 19, 2023
1 min

Legal Stuff

Privacy NoticeCookie PolicyTerms Of Use