C# Access Modifiers

Access Modifiers are keywords that define the accessibility of a member, class or datatype in a program. These are mainly used to restrict unwanted data manipulation by external programs or classes. There are 4 access modifiers (public, protected, internal, private) which defines the 6 accessibility levels as follows:



  • public
  • protected
  • internal
  • protected internal
  • private
  • private protected



The Accessibility table of these modifiers is given below:

public 
protected 
internal 
protected internal 
private 
private protected 
Entire program 
Yes 
No 
No 
No 
No 
No 
Containing class 
Yes 
Yes 
Yes 
Yes 
Yes 
Yes 
Current assembly 
Yes 
No 
Yes 
Yes 
No 
No 
Derived types 
Yes 
Yes 
No 
Yes 
No 
No 
Derived types within current assembly 
Yes 
Yes 
No 
Yes 
No 
Yes