Nesta aula iremos aprender como criar uma propriedade em C#, iremos entender o que é GET e SET, como utilizar e quando utilizar.
Propriedades permitem que possamos ler ou gravar um campo através da instância do objeto, limitando ou não o acesso a leitura ou gravação desta informação.
Utilizamos as palavras GET e SET para criar propriedades. GET e SET usam atributos da classe para ler ou gravar informações.
Atributos são variaveis abstraídas do mundo real quando definimos as classes.Exemplo: nome, telefone, etc..
Para exemplificar, vamos criar um atributo simples na classe Cachorro,chamado Idade, sem GET ou SET:
public class Cachorro : Animal
{
public int Idade;
public override void Latir()
{
Console.WriteLine("Au eu sou um cachorrinho");
}
}
Ao criar a instância da classe Cachorro, podemos gravar a idade e ler a idade:
//Neste caso, o GET e o SET ficam implícitos e podemos obter e gravar a idade normalmente.
namespace console_app
{
class Program
{
static void Main(string[] args)
{
var c = new Cachorro();
c.Idade = 1;
Console.WriteLine(c.Idade);
}
}
}
Vamos criar propriedades complexa, com GET e SET, para o atributo Idade2
public class Cachorro : Animal
{
public int Idade;
public int Idade2 {get; set;}
public override void Latir()
{
Console.WriteLine("Au eu sou um cachorrinho");
}
}
Ao acessarmos a propriedade Idade2, note que ainda desta maneira, não há diferença de como acessamos o atributo Idade e a propriedade Idade2.
//Ainda podemos obter e gravar a idade normalmente.
namespace console_app
{
class Program
{
static void Main(string[] args)
{
var c = new Cachorro();
c.Idade = 1;
Console.WriteLine(c.Idade);
c.Idade2 = 1;
Console.WriteLine(c.Idade2);
}
}
}
Mas então, qual seria a diferença entre acessar o atributo Idade e Idade2? A diferença é , se quisermos que a propriedade Idade2 seja somente leitura, excluímos o SET. Exemplo:
//definimos a prorpiedade Idade2 só com GET e só será possivel obter o valor da Idade2.
public class Cachorro : Animal
{
public int Idade;
public int Idade2 {get;}
public override void Latir()
{
Console.WriteLine("Au eu sou um cachorrinho");
}
}
Obtendo somente o valor da Idade2 com o GET:
namespace console_app
{
class Program
{
static void Main(string[] args)
{
var c = new Cachorro();
Console.WriteLine(c.Idade2); //só é possivel mostrar o valor, não é possível atribuir valor.
}
}
}
Podemos ainda definir o que vamos retornar na Propriedade Idade2, criando um bloco de código no GET. Exemplo:
//definimos a prorpiedade Idade2 só com GET e só será possivel obter o valor da Idade2.
public class Cachorro : Animal
{
public int Idade;
private int idadePreDefinida = 2;
public int Idade2
{
get
{
return idadePreDefinida;
}
}
}
No programa principal(main), ao Obter Idade2, será mostrado 2.Exemplo:
namespace console_app
{
class Program
{
static void Main(string[] args)
{
var c = new Cachorro();
Console.WriteLine(c.Idade2);
//resultado 2
}
}
}
Podemos definir SET para gravar a Idade2 que vamos atribuir na instãncia da classe.
//utilizamos o value na classe para gravar o valor que vem da atribuição da instância do objeto.
public class Cachorro : Animal
{
public int Idade;
private int idadePreDefinida = 2;
public int Idade2
{
get
{
return idadePreDefinida;
}
set
{
idadePreDefinida = value;
}
}
}
No programa principal(main), ao gravar Idade2 com o valor 1, será mostrado 1.Exemplo:
namespace console_app
{
class Program
{
static void Main(string[] args)
{
var c = new Cachorro();
c.Idade2 = 1; //Aqui atribuimos 1 para a Idade2
Console.WriteLine(c.Idade2);
//resultado 1
}
}
}
Nesta aula iremos aprender como criar uma propriedade em C#, iremos entender o que é GET e SET, como utilizar e quando utilizar.
Propriedades permitem que possamos ler ou gravar um campo através da instância do objeto, limitando ou não o acesso a leitura ou gravação desta informação.
Utilizamos as palavras GET e SET para criar propriedades. GET e SET usam atributos da classe para ler ou gravar informações.
Atributos são variaveis abstraídas do mundo real quando definimos as classes.Exemplo: nome, telefone, etc..
Para exemplificar, vamos criar um atributo simples na classe Cachorro,chamado Idade, sem GET ou SET:
public class Cachorro : Animal
{
public int Idade;
public override void Latir()
{
Console.WriteLine("Au eu sou um cachorrinho");
}
}
Ao criar a instância da classe Cachorro, podemos gravar a idade e ler a idade:
//Neste caso, o GET e o SET ficam implícitos e podemos obter e gravar a idade normalmente.
namespace console_app
{
class Program
{
static void Main(string[] args)
{
var c = new Cachorro();
c.Idade = 1;
Console.WriteLine(c.Idade);
}
}
}
Vamos criar propriedades complexa, com GET e SET, para o atributo Idade2
public class Cachorro : Animal
{
public int Idade;
public int Idade2 {get; set;}
public override void Latir()
{
Console.WriteLine("Au eu sou um cachorrinho");
}
}
Ao acessarmos a propriedade Idade2, note que ainda desta maneira, não há diferença de como acessamos o atributo Idade e a propriedade Idade2.
//Ainda podemos obter e gravar a idade normalmente.
namespace console_app
{
class Program
{
static void Main(string[] args)
{
var c = new Cachorro();
c.Idade = 1;
Console.WriteLine(c.Idade);
c.Idade2 = 1;
Console.WriteLine(c.Idade2);
}
}
}
Mas então, qual seria a diferença entre acessar o atributo Idade e Idade2? A diferença é , se quisermos que a propriedade Idade2 seja somente leitura, excluímos o SET. Exemplo:
//definimos a prorpiedade Idade2 só com GET e só será possivel obter o valor da Idade2.
public class Cachorro : Animal
{
public int Idade;
public int Idade2 {get;}
public override void Latir()
{
Console.WriteLine("Au eu sou um cachorrinho");
}
}
Obtendo somente o valor da Idade2 com o GET:
namespace console_app
{
class Program
{
static void Main(string[] args)
{
var c = new Cachorro();
Console.WriteLine(c.Idade2); //só é possivel mostrar o valor, não é possível atribuir valor.
}
}
}
Podemos ainda definir o que vamos retornar na Propriedade Idade2, criando um bloco de código no GET. Exemplo:
//definimos a prorpiedade Idade2 só com GET e só será possivel obter o valor da Idade2.
public class Cachorro : Animal
{
public int Idade;
private int idadePreDefinida = 2;
public int Idade2
{
get
{
return idadePreDefinida;
}
}
}
No programa principal(main), ao Obter Idade2, será mostrado 2.Exemplo:
namespace console_app
{
class Program
{
static void Main(string[] args)
{
var c = new Cachorro();
Console.WriteLine(c.Idade2);
//resultado 2
}
}
}
Podemos definir SET para gravar a Idade2 que vamos atribuir na instãncia da classe.
//utilizamos o value na classe para gravar o valor que vem da atribuição da instância do objeto.
public class Cachorro : Animal
{
public int Idade;
private int idadePreDefinida = 2;
public int Idade2
{
get
{
return idadePreDefinida;
}
set
{
idadePreDefinida = value;
}
}
}
No programa principal(main), ao gravar Idade2 com o valor 1, será mostrado 1.Exemplo:
namespace console_app
{
class Program
{
static void Main(string[] args)
{
var c = new Cachorro();
c.Idade2 = 1; //Aqui atribuimos 1 para a Idade2
Console.WriteLine(c.Idade2);
//resultado 1
}
}
}