如果,假设我有一个带有 ListView 和 Update() 函数的 FormA。然后我也有一个带有函数 A() 的数学类,它有一些魔力......可以使用委托从 A() 调用 Update() 吗?或者,还有更好的方法?我已经意识到从另一个班级更新 gui 表单是有风险的......提前致谢!
问问题
397 次
1 回答
2
是的。只要数学课不知道它的实际调用是什么,它就没有那么危险。您只需通过将其指向表单中所需的功能来给它一个粗略的想法:
public class MathClass {
public Action FunctionToCall { get; set; }
public void DoSomeMathOperation() {
// do something here.. then call the function:
FunctionToCall();
}
}
在你的表格中,你会这样做:
// Form.cs
public void Update() {
// this is your update function
}
public void DoMathStuff() {
MathClass m = new MathClass() { FunctionToCall = Update };
m.DoSomeMathOperation(); // MathClass will end up calling the Update method above.
}
您的 MathClass 调用 Update,但它不知道告诉它调用 Update 的对象或 Update 在哪里......这比将对象紧密耦合在一起更安全。
于 2012-11-06T01:50:18.667 回答