2016-11-09 2 views
1

Ich habe eine Klasse:aktualisieren automatisch Eigenschaft

public class Car 
{ 
    public string Color { get; set; } 

     public string Speed { get; set; } 

     public string Property3 { get; set; } 
} 

ich automatisch den Wert von Property3 festlegen möchten, wenn Eigenschaft Color oder Speed aktualisiert

ich den Wert von Property3 mit der Verkettung festlegen möchten von Wert Color und Speed getrennt mit Bindestrich

Was ist der beste Weg, dies zu tun?

Antwort

2

können Sie festlegen, dass in dem Getter von Property3 - etwa so:

public string Property3 
{ 
    get { return $"{this.Color}-{this.Speed}"; } 
} 

Ich gehe davon aus, dass Sie Property3 wollen nur gelesen werden, so ausgelassen ich die Setter in der Probe über

+1

Vielleicht möchten Sie die OP wissen, dass Ihr Code-Schnipsel verwendet C# 6.0-Syntax lassen – Izzy

0

Sie haben zwei Möglichkeiten:

aktualisieren die abhängige Eigenschaft innerhalb Setter von Geschwindigkeit und Farbe:

private string _Color; 
public string Color 
{ 
    get 
    { 
     return this._Color; 
    } 
    set 
    { 
     this._Color = value; 
     this.Property3 = $"{this.Color}-{this.Speed}"; 
    } 
} 

private string _Speed; 
public string Speed 
{ 
    get 
    { 
     return this._Speed; 
    } 
    set 
    { 
     this._Speed = value; 
     this.Property3 = $"{this.Color}-{this.Speed}"; 
    } 
} 
public string Property3 { get; set; } 

Verkettungs innerhalb get der abhängigen Eigenschaft:

public string Property3 
{ 
    get 
    { 
     return $"{this.Color}-{this.Speed}"; 
    } 
} 

Conceptual Unterschied ist ganz offensichtlich: Möchten Sie in der Lage sein wollen Property3 zu überschreiben oder sollte es nur gelesen werden.

1

können Sie diese Getter-Eigenschaft wie dieser

public string Property3 { 
    get { return Color + "-" + Speed; } 
} 
Verwandte Themen