Quando estávamos criando a classe. Havia sido dito que seria explicado o public que se coloca na frente das variáveis. Mas ainda não vi. Porque necessita colocar o Public na frente?
Quando estávamos criando a classe. Havia sido dito que seria explicado o public que se coloca na frente das variáveis. Mas ainda não vi. Porque necessita colocar o Public na frente?
Quando a variável está com o Public na frente significa que ela será visível quando você instanciar esta classe como no exemplo abaixo, se estive sem o Public, você somente acessaria esta variavel dentro da própria classe.
var minhaClasse = new MinhaClasse();
minhaClasse.VariavelPublica;
Boa tarde Jansen Carvalho Miotto.
Quando se programa orientado a objetos, como é o caso da linguagem C#, há a necessidade (por segurança) de se definir os tipos (nível de acessibilidade) dos Métodos e Atributos.
Pois bem, há diferentes tipos de acessibilidade com relação aos atributos, são eles:
Public ~ O acesso não é restrito.
Protected ~ O acesso é limitado à classe que os contém ou aos tipos derivados da classe que os contém.
Internal ~ O acesso é limitado ao assembly atual.
Protected internal ~ O acesso é limitado ao assembly atual ou aos tipos derivados da classe que os contém.
Private ~ O acesso é limitado ao tipo recipiente.
Private protected ~ O acesso é limitado à classe que o contém ou a tipos derivados da classe que o contém no assembly atual. Disponível desde o C# 7.2.
Os abordados nas aulas foram Public e Private. Atributos só podem ser acessados na Main (código principal) se forem do tipo Public, de outra forma não é possível acessá-los. Já os atributos do tipo Private só podem ser acessados internamente na classe.
EXEMPLO:
Classe:
namespace MyProgram
{
public class MyExemple
{
public string name;
private string _number;
}
}
Fluxo de código principal:
using System;
namespace MyProgram
{
internal class Program
{
public static void Main(string[] args)
{
var exemple = new MyExemple();
Console.WriteLine(exemple.name);
Console.WriteLine(exemple._number); /* Irá ocorrer um erro neste ponto */
}
}
}
Mais informações: https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/keywords/accessibility-levels
Espero ter ajudado!