C# Access Modifiers

C# Access Modifiers

Access modifiers in C# define the visibility and accessibility of classes, methods, and members.
They control who can access a class or its members.


🔹 Types of Access Modifiers

Modifier Description Accessible From
public Fully accessible Anywhere
private Only inside the class Same class only
protected Accessible in class & derived classes Same class & subclass
internal Accessible within same assembly/project Same project
protected internal Accessible in derived classes or same assembly Subclass or same project
private protected Accessible in derived class within same assembly Subclass in same assembly

🔹 public Example


 


🔹 private Example



 


🔹 protected Example


 


🔹 internal Example



 

✔ Accessible within the same assembly/project, not from another project.


🔹 protected internal Example

Accessible if either condition is true:

  • Derived class

  • Same assembly

protected internal int Id;

🔹 private protected Example

Accessible if both conditions are true:

  • Derived class

  • Same assembly

private protected int Id;

🔹 Default Access Modifier

  • Class members default to private

  • Top-level classes default to internal


🔹 Summary

public → everyone
private → only class
protected → class & derived
internal → same project
protected internal → derived or same project
private protected → derived in same project

You may also like...