Ich habe eine Klasse, die zwei Klassen instanziiert, die Schnittstellen implementieren. Ich möchte, dass eine Klasse eine andere Klasse benachrichtigt, dass etwas in Ordnung ist. Ich könnte es mit einer Aktion machen und dann private Variablen in der Klasse verwenden, frage mich aber, ob es eine direkte Möglichkeit gibt, dies mit Eigenschaften zu tun, so dass sich eine Eigenschaft einer anderen Klasse aktualisiert, wenn sich der Wert einer Eigenschaft ändert.Aktion <T> entspricht für Eigenschaften
Zum Beispiel:
public class MyClass
{
public ILogger Logger {get;set;}
public ILogic Logic {get;set;}
private Form MyWinform;
public void Setup()
{
MyWinform = new MyWinform();
MyWinform.StartBatch += Logger.CreateFile; //Create file when user presses start
//How can I set a property on ILogic to be AllOk once ILogger says so??
//I could use an Action so that once all is ok I call IDecidedAlOK in ILogger which
//can then assign a private bool variable inside the class
Logic.ItsOKMethodSoSetVariableToTrue = Logger.IDecidedAllOKMethod;
}
public void DataIn(string Value)
{
Logic.DataIn(Value);
}
public void CreateInstances()
{
Logger = new FileLogger();
Logic = new MyLogic();
}
}
public class MyLogic : ILogic
{
public void DataIn(string Value)
{
//I want to check that all is ok before I do anything
//if (!AllOK)
//return;
//Do stuff
}
}
Besitzen Sie die ILogger-Klasse, ich meine, können Sie Änderungen daran vornehmen? – Stormenet
Kann "ILogger" ein "AllOK" -Ereignis offen legen, das "ILogic" abonnieren kann? – mellamokb
@Stormenet Ja ich kann – Jon