public
- Access is not restricted.
- Allows the members to be globally accessible.
protected
- Access is limited to the containing class or types derived from the containing class.
internal
- Access is limited to the current assembly.
- Internal members are accessible only within files in the same assembly.
protected internal
- Access is limited to the current assembly or types derived from the containing class.
private
- Access is limited to the containing type.
sealed
- prevents inheritance
Sources: Accessibility Levels (MSDN), Difference between internal and private