Public - Access to same assembly or another assembly that references it.
Private - Access to same class or struct.
Protected - Access to same class or struct, or in a class that is derived.
Internal - Access to any code in the same assembly, but not from another assembly.
Protected Internal - Access to any code in the assembly in which it is declared, or from within a derived class in another assembly.