The Public keyword is an access modifier for a type and type member. Public access is the highest level of access allowed. There are no restrictions on access to public members.
the protected keyword is a member access modifier. A protected member is accessible in its class and can be accessed by a derived class. For A comparison of protected with other access modifiers, the protected members of the base class are accessible in the derived class only if access occurs through the derived class type.
The internal keyword is an access modifier for a type and a member of a type. An internal type or member is accessible only in files of the same assembly.
The private keyword is a member access modifier. Private access is the lowest level of access allowed. Private members are accessible only in the class and struct in which they are declared.
Brief description of access rights for public private protected internal modifier