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
