Entwickler-Ecke

C# - Die Sprache - Eigenschaften vererben


The_Dude1974 - Mi 26.04.06 13:29
Titel: Eigenschaften vererben
Hallo,
kann man durch Vererbung Eigenschaften erweitern?

In meinem Bsp:
Ich habe 2 Klassen CSignalOut und CSignalIn. Beide erben von der abstrakten Klasse CSignal.
Bei beiden Klassen kann ich den aktuellen Wert abfragen. Aber nur bei CSignalOut kann ich einen
Wert setzen.

BeispielCode:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
abstract class CSignal
{
    protected double m_value = 0.0;
    // -- Eigenschaft um den Wert auszulesen --
    public virtual double Value 
  {
        get { return m_value; }
    }
}

class CSignalOut : CSignal
{
    public override double Value
  {
    // -- Eigenschaft um den Wert zu setzen --
        set { m_value = value; }
        // !!!! PROBLEM !!!!!
        // base.Value      Funktioniert nicht!
        // get { base.Value } Funktioniert auch nicht!
  }
}


Gibt es irgendwie eine Möglichkeit das Problem sauber zu lösen?
Im voraus vielen Dank.

Moderiert von user profile iconraziel: C#-Tags hinzugefügt


r2c2 - Do 27.04.06 13:56

Geb nicht allzu viel auf, das, was ich jetzt sage, aber wie willst du das "sauberer" lösen? IMHO is das schon relatv "sauber". Das einzige, was mir noch einfällt, wär folgendes:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
abstract class CSignal   
{   
    protected double m_value = 0.0;   
    // -- Eigenschaft um den Wert auszulesen --   
    public virtual double Value    
  {   
        get { return m_value; } 
        set; // Muss IMHO in abgeleiteter Klasse überschrieben werden...  
    }   
}

[meta]ganz so sicher bin ich mir da aber auch nicht. Mach noch nicht so lange C#...[/meta]

mfg

Christian


Robert_G - Sa 29.04.06 14:27

Sauberer wäre wohl entweder