不能,s只是一个参数,他只在构造方法的上下文中有效,如果退出构造函数,s将消失(当然,他所引用的东西不会消失)。关键在于你书写的代码是否总是有意义。比如,一般的服务对象都是在客户对象内部建立,而不是传进取的。
class client
{
private server ser public void client()
{
this.ser = new server(); //注意这里 this.ser.OnChange += new server.Change(this.Edit);
//发生OnChange时client用Edit方法进行处理 }}
class client
{
private server ser public void client()
{
this.ser = new server(); //注意这里 this.ser.OnChange += new server.Change(this.Edit);
//发生OnChange时client用Edit方法进行处理 }}
public event Change OnChange;这样才能使用 +=
另外,如果你改变一下顺序的话,我认为你的问题应该可以改的,如下所示:
public void client(server s)
{
s.OnChange += server.Change(Edit);
//发生OnChange时client用Edit方法进行处理
this.ser = s;
//保存一个server对象的引用
}
最好你还是试一下吧