我有一个类实例化两个实现接口的类。我想让一个班级通知另一个班级某些事情是可以的。我可以用Action来完成,然后在类中使用私有变量,但是想知道是否有直接的方法来处理属性,以便在属性值更改时更新另一个类的属性。动作<T>等价于属性
例如:
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
}
}
您是否拥有ILogger类,我的意思是,您可以对其进行更改吗? – Stormenet 2012-03-27 13:57:14
'ILogger'是否可以暴露'ILogic'可以订阅的'AllOK'事件? – mellamokb 2012-03-27 13:57:22
@Stormenet是的,我可以 – Jon 2012-03-27 14:02:43