【发布时间】:2012-03-27 13:46:39
【问题描述】:
我有一个类实例化两个实现接口的类。我希望一个班级通知另一个班级事情正常。我可以用 Action 来做,然后在类中使用私有变量,但想知道是否有直接的方法用属性来做,这样当属性的值发生变化时,它会更新另一个类的属性。
例如:
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 类,我的意思是,您可以对其进行更改吗?
-
可以
ILogger公开AllOK事件ILogic可以订阅吗? -
@mellamokb 好主意,我只是想知道是否有直接使用属性的方法