我想封装委托方法,稍后会调用。此委托方法在调用时将在该时间实例计算一些参数并将值分配/返回给类外部的变量。
例如,我有一个类 Tool
当调用委托方法时,这个工具应该生成,比如说点......
public delegate void Action();
class Tool
{
public Action Select;
public Action Cancel;
public Point position;
public Tool(ref Point outPoint) //Cannot use ref with lambda...
{
Select = () => outPoint = position;
}
public void Update(Point newPosition)
{
position = newPosition
}
public void UpdateKey(Keys k, bool IsPress)
{
//Invoke Select/Cancel when press some keys
}
}
我在这里要完成的是一个简单的函数,它应该接收我的输入并在调用 Select 后用正确的参数填充它。如果这是一个单一的方法,那么使用 ref 很容易完成。但是,我必须跟踪许多论点,所以我必须把它变成一个类。另一件事是,这个调用发生在类内部,所以我不能从类中返回计算值。尽管我可以更改设计以便从类外部更新更新方法,但我希望让类管理自己的更新例程。我知道应该有更好的方法,所以如果有的话,请告诉我。