【发布时间】:2014-01-27 13:37:39
【问题描述】:
你如何获得一个类的当前实例?
该类有搜索方法和取消方法。
代码示例:
if (btnSearch.Text =="Search")
{
Searcher srch = new Searcher();
srch.Search();
btnSearch.Text = "Cancel";
return;
}
if (btnSearch.Text == "Cancel")
{
//call a method in the instance above for example
srch.Cancel();
}
我只想在 btnSearch.Text =="Search"; 时创建实例当 btnSearch.Text =="Cancel";我想调用 srch.Cancel();
//// 感谢 nmclean,问题解决了,我不得不在更高的范围内声明 Search 类才能访问当前正在运行的实例。
【问题讨论】:
-
“上面的实例”是什么意思?
Searcher的实例? -
你想从上面的范围调用
srch的方法吗? -
请定义“类的当前实例”.. 你的意思是单例,或者服务定位器,或者......?
-
没有“当前实例”这样的东西。如果有多个实例怎么办?如果有多个线程怎么办?
-
我也不会依赖按钮的文本。相反,请保留“搜索中”标志。您也可以按照以下建议扩大
srch的范围,并使用srch != null作为您的“正在搜索”标志。