2 Stimmen

Wie verknüpft man einen Property Setter mit einem Delegaten?

Ich möchte einem Delegaten einen Eigenschaftssetzer geben. Wie wird das gemacht?

class A {
  private int count;
  public int Count {
    get { return count; }
    set { count = value; }
  }
}
A a = new A();   
delegate void ChangeCountDelegate(int x);
ChangeCountDelegate dlg = ... ? // should call a.Count = x

7voto

Snake Punkte 7704
ChangeCountDelegate dlg = (int x) => a.Count = x;

// or
ChangeCountDelegate dlg = x => a.Count = x;

// or 
ChangeCountDelegate dlg = new ChangeCountDelegate(delegate(int x) { a.Count = x; } );

// or 
ChangeCountDelegate dlg = new ChangeCountDelegate(int x => a.Count = x);

Oder denke ich zu einfach? :)

Ich bin sicher, Sie verstehen, worum es geht.

Der 3. funktioniert in .NET 2.0, die anderen benötigen mindestens 3.5 :)

1voto

Michael Buen Punkte 37103

Versuchen Sie dies:

ChangeCountDelegate dlg = v => a.Count = v;

1voto

Oliver Friedrich Punkte 8805

C# unterstützt keine Property-Delegates.

Sie können mit anonymen Methoden in der von Snake erwähnten Weise arbeiten, wenn Sie dies benötigen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X