C# supports the following access modifiers.
Access modifier Meaning
public Accessible anywhere;
internal Accessible only within its assembly or friend assemblies;
private Visible only within its own type;
protected Visible only within containing type or subclasses
protected internal The union of protected and internal accessibility
interal is the default for non-nested types.
public is implicit for members of an enum or interface type
private is the default for members of a class or struct