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
🔹 private protected Example
Accessible if both conditions are true:
Derived class
Same assembly
🔹 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
