Oi.. Eu consegui entender o conceito e tals, mas não estou conseguindo colocar em palavras pra que funciona o static, seria pra proteger, pra não ser acessado de outra maneira ou algo assim?
Oi.. Eu consegui entender o conceito e tals, mas não estou conseguindo colocar em palavras pra que funciona o static, seria pra proteger, pra não ser acessado de outra maneira ou algo assim?
Olá Davyd, como vai?
Na verdade um Membro Estático funciona de forma semelhante a um método "comum". A maior vantagem de utiliza-lo é que não precisamos instanciar a classe para poder utiliza-lo.
Para exemplificar melhor o que quero dizer, veja o código abaixo:
class Program
{
static void Main(string[] args)
{
string nome ="Ana";
Console.WriteLine(GuardarNome(nome));
Console.ReadLine();
}
public static string GuardarNome(string nome)
{
return nome;
}
}
Fiz a criação de um método que guarda um nome. Perceba que não houve instanciação de nenhuma classe.
Vamos fazer um teste: retire o static
do método, desta forma:
class Program
{
static void Main(string[] args)
{
string nome ="Ana";
Console.WriteLine(GuardarNome(nome));
Console.ReadLine();
}
public string GuardarNome(string nome)
{
return nome;
}
}
Acredito que você encontrará um erro que pedirá uma referência de um objeto.
Para conseguir utilizar o método desta forma, precisamos criar um objeto, veja:
class Program
{
static void Main(string[] args)
{
Program objetoNome = new Program();
string nome ="Ana";
Console.WriteLine(objetoNome.GuardarNome(nome));
Console.ReadLine();
}
public string GuardarNome(string nome)
{
return nome;
}
}
Desta forma o código funcionará normalmente.
Certo, entendemos como funciona um método static
e um "comum", mas como saber qual utilizar? Isso vai depender do problema que temos, mas no geral, os dois métodos serão uteis para o mesmo problema. Basta escolher o que te deixa mais confortável.
Veremos mais sobre métodos e classes static
mais para frente nesta formação.
Caso houver alguma dúvida, fique tranquilo para perguntar, vou estar por aqui.
Abraços!
Entendi, mas agora tenho outras perguntas, pra complementar.
Oq é instancia, objeto, escopo, propriedade e método? Tipo eu tenho uma base doq seja, porém não tenho total clareza. Ah e se possível poderia explicar de maneira bem simples, pra um melhor entendimento da minha parte, obrigado ^_^
Olá Davyd,
Instância: Vamos supor que fizemos a criação de uma classe chamada Nome, para conseguir utilizar tudo que faz parte desta classe, precisamos criar instância no Main. Desta forma estamos instanciando a classe Nome:
Nome nome = new Nome();
Objeto: Ainda utilizando o código acima, onde instanciamos a classe Nome, o objeto seria o nome em minúsculo, onde vamos usar para atribuir o código que temos na classe Nome, veja:
Nome nome = new Nome();
nome.PrimeiroNome = "Ana";
Propriedades: Para ficar melhor de entender, acho que vale a comparação com variáveis. Propriedades seria uma "super" variável, onde podemos fazer validações e modificações dependendo do valor que for atribuído. Caso tenha interesse, dê uma olhada na documentação, neste LINK. Para exemplificar, criei duas Propriedades na classe Nome, perceba que minhas Propriedades tem todo sentido na classe Nome veja:
public class Nome
{
public string PrimeiroNome { get; set; }
public string SobreNome { get; set; }
}
Método: Notei que você concluiu os cursos de lógica. Os métodos no C# seria a function()
naquela linguagem. A function pulaLinha
que vimos nos cursos de lógica em C# ficaria desta forma e chamamos de método:
public void PulaLinha()
{
Console.WriteLine();
Console.WriteLine();
}
Escopo: Não tem necessariamente conexão com a linguagem de programação C#. Seria algo mais universal, vou deixar algumas coisa do que pesquisei em dicionários:
Abraços e bons estudos!