C # - Propriedades
Propertiessão membros nomeados de classes, estruturas e interfaces. Variáveis de membro ou métodos em uma classe ou estruturas são chamadosFields. Propriedades são uma extensão dos campos e são acessadas usando a mesma sintaxe. Eles usamaccessors através do qual os valores dos campos privados podem ser lidos, escritos ou manipulados.
As propriedades não nomeiam os locais de armazenamento. Em vez disso, eles têmaccessors que lêem, escrevem ou calculam seus valores.
Por exemplo, vamos ter uma classe chamada Aluno, com campos privados para idade, nome e código. Não podemos acessar diretamente esses campos de fora do escopo da classe, mas podemos ter propriedades para acessar esses campos privados.
Acessores
o accessorde uma propriedade contém as instruções executáveis que ajudam na obtenção (leitura ou computação) ou configuração (gravação) da propriedade. As declarações do acessador podem conter um acessador get, um acessor set ou ambos. Por exemplo -
// Declare a Code property of type string:
public string Code {
get {
return code;
}
set {
code = value;
}
}
// Declare a Name property of type string:
public string Name {
get {
return name;
}
set {
name = value;
}
}
// Declare a Age property of type int:
public int Age {
get {
return age;
}
set {
age = value;
}
}
Exemplo
O exemplo a seguir demonstra o uso de propriedades -
using System;
namespace tutorialspoint {
class Student {
private string code = "N.A";
private string name = "not known";
private int age = 0;
// Declare a Code property of type string:
public string Code {
get {
return code;
}
set {
code = value;
}
}
// Declare a Name property of type string:
public string Name {
get {
return name;
}
set {
name = value;
}
}
// Declare a Age property of type int:
public int Age {
get {
return age;
}
set {
age = value;
}
}
public override string ToString() {
return "Code = " + Code +", Name = " + Name + ", Age = " + Age;
}
}
class ExampleDemo {
public static void Main() {
// Create a new Student object:
Student s = new Student();
// Setting code, name and the age of the student
s.Code = "001";
s.Name = "Zara";
s.Age = 9;
Console.WriteLine("Student Info: {0}", s);
//let us increase age
s.Age += 1;
Console.WriteLine("Student Info: {0}", s);
Console.ReadKey();
}
}
}
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
Student Info: Code = 001, Name = Zara, Age = 9
Student Info: Code = 001, Name = Zara, Age = 10
Propriedades Abstratas
Uma classe abstrata pode ter uma propriedade abstrata, que deve ser implementada na classe derivada. O programa a seguir ilustra isso -
using System;
namespace tutorialspoint {
public abstract class Person {
public abstract string Name {
get;
set;
}
public abstract int Age {
get;
set;
}
}
class Student : Person {
private string code = "N.A";
private string name = "N.A";
private int age = 0;
// Declare a Code property of type string:
public string Code {
get {
return code;
}
set {
code = value;
}
}
// Declare a Name property of type string:
public override string Name {
get {
return name;
}
set {
name = value;
}
}
// Declare a Age property of type int:
public override int Age {
get {
return age;
}
set {
age = value;
}
}
public override string ToString() {
return "Code = " + Code +", Name = " + Name + ", Age = " + Age;
}
}
class ExampleDemo {
public static void Main() {
// Create a new Student object:
Student s = new Student();
// Setting code, name and the age of the student
s.Code = "001";
s.Name = "Zara";
s.Age = 9;
Console.WriteLine("Student Info:- {0}", s);
//let us increase age
s.Age += 1;
Console.WriteLine("Student Info:- {0}", s);
Console.ReadKey();
}
}
}
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
Student Info: Code = 001, Name = Zara, Age = 9
Student Info: Code = 001, Name = Zara, Age = 10