In the C # language, there are five types of access modifiers: public, private, protected, internal, protected internal. The scope of action is as follows:
Access modifier description
Public access. Not subject to any restrictions.
Private access. This class is restricted to access by members, subclasses, and instances.
protected protected Access. This class and subclass access is limited, and instances cannot be accessed.
Internal internal access. Access is limited to this item and cannot be accessed by others.
protected internal internal protection access. Limited to this item or subclass access, other inaccessible
The editable and default modifiers for C # member types are as follows:
Member type default modifier can be modifier
Enum Public None
class private public, protected, internal, private,
protected internal
Interface Public None
struct private public, internal, private
Let me take a look at the scope of public, private, protected, internal, and protected internal in conjunction with an example.
The following code:
1:using System;
2:using System.Collections.Generic;
3:using System.Text;
4:
5:namespace AccessModifier
6: {
7:public class Accessmodifierclass
8: {
9:public string getpublicstring ()
10: {
11:return "Public String";
12:}
13:
14:protected string getprotectedstring ()
15: {
16:return "Protected String";
17:}
18:
19:private string getprivatestring ()
20: {
21:return "Private String";
22:}
23:
24:internal string getinternalstring ()
25: {
26:return "Internal String";
27:}
28:
29:
protected internal string getprotectedinternalstring ()
30: {
31:return "Protected Internal String";
32:}
33:
34:void Availableaccessmodifier ()
35: {
36:this. Getpublicstring ();
37:this. Getprivatestring ();
38:this. Getinternalstring ();
39:this. Getprotectedinternalstring ();
40:this. Getprotectedstring ();
41:}
42:}
43:
44:
public class TestAccessModifierClass1
45: {
46:void Availableaccessmodifier ()
47: {
48:accessmodifierclass item = new Accessmodifierclass ();
49:item. Getpublicstring ();
50:item. Getinternalstring ();
51:item. Getprotectedinternalstring ();
52:}
53:}
54:
55:public class Testaccessmodifierclass2:accessmodifierclass
56: {
57:void Availableaccessmodifier ()
58: {
59:accessmodifierclass item = new Accessmodifierclass ();
60:item. Getpublicstring ();
61:item. Getinternalstring ();
62:item. Getprotectedinternalstring ();
63:base. Getprotectedstring ();
64:}
65:}
}accessmodifierclass is our access modifier class, which has five access modifier methods, visible in the Accessmodifierclass class The Availableaccessmodifier () method can access all methods.
The Availableaccessmodifier () method in the TestAccessModifierClass1 class can only access the public, internal, and protected internal methods.
The TestAccessModifierClass2 class inherits from the Accessmodifierclass class, so its Availableaccessmodifier () method can access the public,internal, protected and protected internal methods.
C # Public, private, protected, internal, protected internal (reprint)