Public Modifier
A member denoted as public is accessible from anywhere in the code
Private Modifier
A private member is only accessible from within Class where the member is defined
By default (Modifier not specified) all objects in C# are private
Protected Modifier
A protected member is only accessible in a class from its derived class
It is recommended to avoid protected members whenever possible (Members being accessible in derived classes breaks encapsulation)
Internal Modifier
Internal is mostly only used with classes
The classes declared as internal are only accessible within the same assembly/ class library
Protected Internal Modifier
Members declared as protected internal are only accessible within the same assembly (Internal Modifier) or within derived classes on that assembly/ class library (Protected Modifier)
Very rarely used in real world applications and its usage is not recommended