Proprietà nel codice categoria di C# |
 |
 |
Proprietà nel codice categoria di C#
|
Come accediamo alle variabili del membro del codice categoria dall'esterno del codice categoria? In la maggior parte delle lingue compreso C++, faremo il pubblico di variabili del membro in moda da poterli generare un caso del codice categoria e direttamente accedere noi ai campi pubblici, come indicato qui sotto:
|
using System;
class Hello
{
static void Main () {
Console.WriteLine("hello, world");
}
}
|
|
Il suddetto codice categoria ha un campo pubblico: colore. Possiamo accedere a questo campo dall'esterno del codice categoria come indicato qui sotto:
|
Car car = new Car ();
car. Color = "red";
string color = car.color;
|
|
Ma questo è il vecchio senso! Ciò lavoro tranquillo con C#, ma il metodo suggerito è usare “la proprietà„ anziché le variabili direttamente d'accesso del membro. Il seguente snippet di codice mostra come generare “la proprietà„ in un codice categoria.
|
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.
}
}
}
|
|
Il suddetto codice categoria ha un campo riservato - colore. Allora abbiamo uno ““colore„ chiamato della proprietà„, che è usato per rappresentare il campo riservato. Si noti che il campo è riservato e la proprietà è pubblica. (Abbiamo usato lo stesso nome con superiore/lettera minuscula per rappresentare “la proprietà„ e “il campo„, ma possiamo dare tutto il nome che desideriamo.)
|
Ogni proprietà ha due parti:
get
set
|
La parte di otten è eseguita quando accediamo al valore della proprietà come indicato qui sotto:
|
Car car = new Car();
string color = car.Color;
|
|
Una volta eseguiti, quanto sopra ottengono il accessor restituiranno il valore memorizzato nel campo “colore„. La parte dell'insieme è eseguita quando assegniamo un valore alla proprietà come indicato qui sotto:
|
Car car = new Car();
car.Color = "RED";
|
|
Una volta eseguito, il suddetto accessor dell'insieme assegnerà il valore “COLORE ROSSO„ al campo riservato “colore„. (Nota che “il valore„ è una parola chiave, che avrà il valore assegnato esso.)
|
Così, che cosa è la differenza?
|
Sul primo sguardo, non ci è differenza! Possiamo realizzare lo stesso comportamento scrivendo 2 metodi differenti (come SetColor (...), GetColor ()).
|
Il primo vantaggio di usando la proprietà è, pulitore di sguardi di codice che avendo 2 metodi separati. Possiamo denominare semplicemente una proprietà come se sia stato un campo nel codice categoria.
|
Bene, allora possiamo chiedere perchè rendergli 2 metodi, noi possiamo rendergli un campo pubblico, di modo che possiamo accedergli generando un caso del codice categoria.
|
Il vantaggio principale eccessivo usando una proprietà anziché un campo pubblico è, con la proprietà, noi otterrà una probabilità scrivere poche linee del codice (se desideriamo) nei accessors dell'insieme e di otten. Così, possiamo effettuare una certa convalida o qualunque altra logica prima della restituzione dei qualsiasi valori o dell'assegnazione al campo riservato. Vedere il codice categoria modificato qui sotto:
|
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;
}
}
}
|
|
Analizziamo la parte di otten in primo luogo. Qui stiamo controllando se ci sia un valore valido nel campo “colore„ prima che restituiamo il valore. Se è vuoto, stiamo ottenendo una probabilità restituire un valore di difetto “verde„. Questo senso, possiamo assicurarci che chiunque denomina la proprietà “colore„ sempre otterrà un colore valido, mai una stringa vuota.
|
Nella parte dell'insieme, stiamo facendo una convalida per assicurarci che assegniamo sempre un valore valido al nostro campo. Se qualcuno assegna una stringa vuota alla proprietà “di colore„, otterrà un'eccezione (errore).
|
Car car = new Car();
car.Color = "";
|
|
Il suddetto codice getterà un errore perché stiamo provando ad assegnare una stringa vuota ed il accessor dell'insieme getterà un errore se esso una stringa vuota. Questo senso, possiamo assicurarci che permettiamo che soltanto i valori validi siano assegnati.
|
Così, indovino che ora apprezzereste lo scopo “della proprietà„. Così, più campi pubblici! Sempre avere campi riservati e scrivere le proprietà pubbliche come involucro per loro a richiesta per esporlo fuori del codice categoria.
|
 |
 |
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,
|