A linguagem C# oferece diversos tipos de modificadores de acesso para especificar a acessibilidade da declaração de um membro ou um tipo. Alguns desses modificadores são descritos a seguir.
I. Com este modificador, o acesso é permitido somente dentro da classe onde ele foi declarado. Por padrão, é a visibilidade definida para métodos e atributos em uma classe.
II. Com este modificador, apenas a classe que contém o modificador e os tipos derivados dessa classe têm o acesso.
III. Com este modificador, o acesso é limitado ao assembly atual e aos tipos derivados da classe que contém o modificador.
Os itens I, II e III descrevem, respectivamente, os modificadores: