Autor Beitrag
relapse
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50



BeitragVerfasst: Mo 12.12.11 15:14 
Hallo, neue Frage von mir: Wie kann man Delegaten für getter und setter Mehoden erzeugen, die mit Objekten operieren?

Beispiel:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
private Objektklasse _objekt;

public Objektklasse Objekt
{
    get { return _objekt; }
    set { _objekt = value; }
}


Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mo 12.12.11 15:52 
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
event EventHandler<Objektklasse> meinLieberEvent;

public event EventHandler<Objektklasse> MeinLieberEvent
{
    add
    {
        meinLieberEvent += value;
    }
    remove
    {
        meinLieberEvent -= value;
    }
}


Oder du erklärst noch mal deutlich was du genau meinst.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4798
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mo 12.12.11 16:00 
Hallo relapse,

direkt gibt es in C# keine Delegates für Eigenschaften (properties), s.a. www.csharp411.com/pr...h-anonymous-methods/
Jedoch kannst du etwas ähnliches per Reflection, anonymen Methoden oder der CreateDelegate-Methode erreichen:
stackoverflow.com/qu...-for-properties-in-c
stackoverflow.com/qu...e-for-a-net-property
stackoverflow.com/qu...rp-property-delegate
relapse Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 50



BeitragVerfasst: Mo 12.12.11 16:42 
Danke! Wieder sehr hilfreiche Antwort!

Ich habe folgenden Link genommen, daraus die akzeptierte Antwort (mit dem Häckchen)

stackoverflow.com/qu...-for-properties-in-c

und folgendes damit gemacht:



ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
public class Beispielklasse (Model model)
{
    Action<Objektklasse> _valueSetter;

    private Objektklasse _objekt;   // member

    public Objektklasse Objekt      // getter-setter
    {
        get { return _objekt; }
        set { _objekt = value; }
    }

    public Beispielklasse           // Konstruktor
    {
        _valueSetter = (v => Objekt = v);
        model.ObjektSpeichern(_objekt, maskeSchliessen, _valueSetter);
    }
}



... und das läuft!

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt