Habe ich es richtig verstanden, dass du den Rückgabewert per Event weitergeben willst? Ich sehe da zwei Lösungsmöglichkeiten (Für weitere bin ich offen). Ich weiß allerdings nicht, welche die Bessere ist. Vll kann dazu jmd was sagen.
Also 1: Den Rückgabewert in eine Propertie speicher, dass Event auslösen und die Klasse die das Event abonniert hat, liest die Properite aus:
public class HandScanner
{
private object _rueckgabe;
public object Rueckgabe
{
get { return _rueckgabe;}
}
private void UeberwacheHandScanner()
{
if(_rueckgabe != rueckgabeNeuerPing)
{
_rueckgabe = rueckgabeNeuerPing;
OnChangeEvent();
}
}
public delegate void EventDelegate(object source, EventArgs e);
public event EventDelegate ChangeEvent;
private void OnChangeEvent()
{
if(ChangeEvent != null)
{
ChangeEvent(this, new EventArgs());
}
}
}
public class VerarbeiteRueckgabe
{
public VerarbeiteRueckgabe()
{
_handScanner = new HandScanner;
_handScanner.ChangeEvent += EventDelegate(_handScanner_ChangeEvent);
}
private HandScanner _handScanner;
private void _handScanner_ChangeEvent(object value, EventArgs e)
{
object rueckgabe = _handScanner.Rueckgabe;
}
}
oder 2. den Übergabewert mit ins Event verpacken:
public class HandScanner
{
private void UeberwacheHandScanner()
{
if(rueckgabeAlterPing != rueckgabeNeuerPing)
{
OnChangeEvent(rueckgabeNeuerPing);
}
}
public delegate void EventDelegate(object value, EventArgs e);
public event EventDelegate ChangeEvent;
private void OnChangeEvent(object rueckgabe)
{
if(ChangeEvent != null)
{
ChangeEvent(rueckgabe, new EventArgs ());
}
}
}
public class VerarbeiteRueckgabe
{
public VerarbeiteRueckgabe()
{
_handScanner = new HandScanner;
_handScanner.ChangeEvent += EventDelegate(_handScanner_ChangeEvent);
}
private HandScanner _handScanner;
private void _handScanner_ChangeEvent(object value, EventArgs e)
{
object rueckgabe = value;
}
}
Ich habe den Code nicht getestet. Nur kurz runtergeschrieben. Wie gesagt, so würde ich es lösen, weiß allerdings nicht, welche der Beiden Methoden besser ist.