| Propriedade na classe de C# |
 |
 |
|
Propriedade na classe de C#
|
|
Como nós alcançamos variáveis do membro de alguma classe fora da classe? Em a maioria das línguas including C++, nós faremos o público das variáveis do membro de modo que nós possamos criar um exemplo da classe e diretamente alcançar os campos públicos, como mostrado abaixo:
|
using System;
class Hello
{
static void Main () {
Console.WriteLine("hello, world");
}
}
|
|
|
A classe acima tem um campo público: cor. Nós podemos alcançar este campo fora da classe como mostrado abaixo:
|
Car car = new Car ();
car. Color = "red";
string color = car.color;
|
|
|
Mas esta é a maneira velha! Isto trabalho imóvel com C#, mas a aproximação sugerida é usar a “propriedade” em vez das variáveis diretamente de acesso do membro. O seguinte snippet do código mostra como criar a “propriedade” em uma classe.
|
public class Car
{
// private fields.
private string color;
// constructor
public Car()
{
}
public string Color
{
get
{
return color; // return the value from privte field.
}
set
{
color = value; // save value into private field.
}
}
}
|
|
|
A classe acima tem um campo confidencial - cor. Então nós temos um “a “cor chamada” da propriedade”, que é usada representar o campo confidencial. Anotar que o campo é confidencial e a propriedade é pública. (Nós usamos o mesmo nome com superior/lowercase representar a “propriedade” e o “campo”, mas nós podemos dar todo o nome que nós quisermos.)
|
|
Cada propriedade tem duas porções:
começar
ajustar
|
|
A peça começar é executada quando nós alcançamos o valor da propriedade como mostrado abaixo:
|
Car car = new Car();
string color = car.Color;
|
|
|
Quando executados, o acima começam o accessor retornarão o valor armazenado no campo “cor”. A peça do jogo é executada quando nós atribuímos um valor à propriedade como mostrado abaixo:
|
Car car = new Car();
car.Color = "RED";
|
|
|
Quando executado, o accessor acima do jogo atribuirá o valor “VERMELHO” ao campo confidencial “cor”. (Nota que o “valor” é um keyword, que tenha o valor atribuído a ele.)
|
| Assim, que é a diferença?
|
|
No primeiro olhar, não há nenhuma diferença! Nós podemos conseguir o mesmo comportamento escrevendo 2 métodos diferentes (como SetColor (...), GetColor ()).
|
|
A primeira vantagem de usar a propriedade é, líquido de limpeza dos olhares do código do que tendo 2 métodos separados. Nós podemos simplesmente chamar uma propriedade como se era um campo na classe.
|
|
Bem, então nós podemos perguntar porque lhe fazer 2 métodos, nós podemos fazer-lhe um campo público, de modo que nós possamos o alcançar criando um exemplo da classe.
|
|
A vantagem principal excedente usando uma propriedade em vez de um campo público é, com a propriedade, nós começará uma possibilidade escrever poucas linhas do código (se nós queremos) nos accessors começar e de jogo. Assim, nós podemos executar algum validation ou toda a outra lógica antes de retornar algum valor ou de atribui-lo ao campo confidencial. Ver a classe modificada abaixo:
|
public class Car
{
// private fields.
private string color;
// constructor
public Car()
{
}
public string Color
{
get
{
if ( color == "" )
return "GREEN";
else
return color;
}
set
{
if ( value == "" )
thrown new Exception ("Wrong value.");
else
color = value;
}
}
}
|
|
|
Deixar-nos analisar a peça começar primeiramente. Aqui nós estamos verificando se haja um valor válido no campo “cor” antes que nós retornemos o valor. Se estiver vazio, nós estamos começando uma possibilidade retornar um valor de defeito “verde”. Esta maneira, nós podemos certificar-se de que quem quer que chama a propriedade “cor” começará sempre uma cor válida, nunca uma corda vazia.
|
|
Na peça do jogo, nós estamos fazendo um validation para certificar-se que nós atribuímos sempre um valor válido a nosso campo. Se alguém atribuir uma corda vazia à propriedade da “cor”, começará uma exceção (erro).
|
Car car = new Car();
car.Color = "";
|
|
|
O código acima jogará um erro porque nós estamos tentando atribuir uma corda vazia e o accessor do jogo jogará um erro se ele uma corda vazia. Esta maneira, nós podemos certificar-se de que nós permitimos que somente os valores válidos estejam atribuídos.
|
|
Assim, eu suponho que agora você apreciaria a finalidade da “propriedade”. Assim, não mais campos públicos! Sempre ter campos confidenciais e escrever propriedades públicas como o envoltório para eles se requerido para expo os fora da classe.
|
 |
 |
Keywords Property in C# class, c# xml, c# c++, c# net, c# textbox, c# dotnet, vb c#, c# example,
convert c#, c# control, asp c#, private property, c# form, csharp c#, custom c#,
c# application, c# sample, add c#, use c#, properties property, c# data, c# create,
|