Ho una classe che istanzia due classi che implementano le interfacce. Voglio che una classe comunichi ad un'altra classe che qualcosa è OK. Potrei farlo con un'azione e quindi utilizzare variabili private nella classe, ma mi chiedevo se esistesse un modo diretto per farlo con le proprietà in modo che quando il valore di una proprietà cambia, essa aggiorna una proprietà su un'altra classe.Azione <T> equivalente per le proprietà
Ad esempio:
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
}
}
Possiedi la classe di ILogger, voglio dire, puoi apportarvi delle modifiche? – Stormenet
'ILogger' può esporre un evento' AllOK' a cui 'ILogic' può abbonarsi? – mellamokb
@Stormenet Sì, posso – Jon