Exemplo # 01:
Antes de analisar o uso do modificador de acesso interno, precisamos olhar para o modificador de acesso "privado" no programa C# primeiro. Temos iniciado nossa primeira ilustração com o uso da biblioteca de "sistema". Então, estamos usando o espaço de nome definido pelo usuário chamado "novo" contendo um total de duas classes.
A classe "teste" contém a função principal () para iniciar a execução deste código. O console.A instrução writeLine () nesta função de driver principal () é usada para exibir o texto “Método principal da classe de teste” em nossas telas. Um objeto "Obj" para a classe "novo" foi criado usando o nome da classe. A classe "novo", contém um membro de dados privado "X" do tipo inteiro com o valor "14". Isso significa que o valor da variável "x" não pode ser acessado por nenhuma outra função de outras classes, mesmo que sejam derivados.
A função Main () está usando o objeto "OBJ" da nova classe para atualizar o valor do membro de dados privados "X" da classe "novo" i.e. Não é possível agora. Depois de chamar a função show () com o objeto "obj" no método main (), a execução do método show () com o modificador de acesso "público" deve ser realizado. Não parece assim por causa do modificador de acesso privado com a variável "x". Ambas as classes são concluídas e o código está pronto para uso. Temos que salvá -lo primeiro com Ctrl+S e sair do editor fechando -o usando o sinal cruzado do editor de texto.
Depois que o código é salvo, você deve compilá -lo através do uso do compilador C# "MCS" já configurado no Linux. Esta etapa está nos mostrando o erro que ocorreu na linha 12 do nosso código C#, eu.e. A variável “x” não pode ser acessada dentro da classe de teste, pois foi definida com o modificador de acesso privado. Então, precisamos corrigir este erro.
Abrimos o arquivo C# novamente no editor de texto e atualizamos o código substituindo o modificador de acesso privado da variável "x" pelo modificador de acesso público. Não vamos mudar o código restante, pois não é necessário. Então, salve o código recém -atualizado mais uma vez.
Quando usamos o comando MCS Compiler no shell seguido pelo nome de um arquivo C#, o código foi compilado com sucesso. Depois disso, executamos o arquivo "exe" criado pelo compilador de C# no shell e a saída foi exibida i.e. Um valor de "x" foi atualizado.
Exemplo # 02:
Agora, vamos dar uma olhada no uso dos modificadores de acesso interno para definir o escopo de algumas variáveis nas classes do código C#. Então, iniciamos este exemplo C# com o uso da biblioteca do sistema e criamos um espaço para nome "novo" nele. Este espaço para nome contém duas classes independentes chamadas "novo" e "teste". A classe "Teste" contém a função de código do driver principal (), enquanto a classe "nova" contém a variável inteira "x" com um valor de 14 definido com o modificador de acesso interno e a função show ().
O novo objeto de classe "OBJ" foi gerado com o uso da palavra -chave "nova" seguida pelo nome de uma classe. Este objeto da nova classe foi utilizado na próxima linha para atualizar o valor da variável "x" por "0". Agora, a variável "X" será atualizada com sucesso, pois a variável "x" é definida com o modificador de acesso interno no mesmo conjunto de namespace "novo". A função show () foi chamada com esse mesmo objeto "obj". Quando a função show () é executada, exibirá o valor atualizado de "x" no shell via console.Declaração de função writeLine ().
É hora de salvar rapidamente nosso arquivo de código com ctrl+s e voltar ao terminal novamente. No shell, estamos executando o comando "mcs" para a compilação de código C# para executar o "interno.Arquivo CS ”. Esta compilação foi bem -sucedida e o arquivo "exe" compilado para o interno.CS foi criado em nosso diretório de trabalho atual. Estamos usando esse arquivo "exe" para executá -lo com o comando de tempo de execução "mono" no shell. A saída foi exibida com sucesso como abaixo. A função principal () foi executada primeiro conforme a string exibida e depois disso, o valor atualizado "0" da variável "x" é exibido com sucesso.
É assim que um modificador de acesso interno funciona no código C# quando foi usado no mesmo espaço de nome. Vamos fazer alterações em nosso código para ver como um modificador de acesso interno afeta a execução do código C# quando usado entre mais de uma montagem. Digamos que você criou dois espaços de nome no seu mesmo código C#.e. Novo e teste.
Dentro do novo espaço para nome, criamos uma classe nova e inicializamos uma variável "X" do modificador de acesso interno com o valor 14. A mesma classe de espaço para nome new contém a função show () para exibir o valor de "x". Por outro lado, o teste de namespace contém um teste de classe com uma função principal (). Esta função principal () está criando um objeto de classe novo do outro espaço de nome "novo". O mesmo objeto foi usado para modificar o valor da variável "x" e chamar a função show () para exibir o valor atualizado da variável "x". Agora, a variável "X" é definida no espaço de nome "novo", enquanto o objeto está tentando acessá -lo no outro espaço de nome "teste". Devido ao modificador de acesso interno com variável "x", podemos encontrar um erro. Vamos ver isso agora.
Depois de compilar este código, recebemos o erro como esperado, eu.e. tipo protegido.
Para evitar esse erro na compilação, temos que fazer algumas atualizações para o código, como fizemos no código acima do último código. Então, removemos o espaço para nome "novo" do código e não removemos o espaço para nome de teste do código, como mostrado abaixo.
Após a compilação e execução do código, ele foi executado com sucesso e exibiu o valor modificado da variável "x" no shell, independentemente de seu tipo interno.
Conclusão
Terminamos de implementar os exemplos para o modificador de acesso interno em C#. Iniciamos este artigo com o exemplo de discutir o modificador de acesso privado para compará -lo com os modificadores de acesso interno, pois ambos fazem o mesmo trabalho em diferentes níveis de programação. Tentamos usar o modificador de acesso interno no mesmo espaço de nome, dois espaços para nome diferentes e dentro da classe sem espaço para nome definido. Dessa forma, elaboramos seu uso para a proteção de variáveis e função de membros de dados em C#.