我正在处理Windows窗体。我正在创建一个名为client的对象,客户端有许多功能,包括login()search()。单击"登录按钮"当我点击"搜索按钮"
时,会调用搜索功能通过在此处声明,我能够完成创建一个"全局对象"(缺少一个更好的术语):
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
MyClient client = new MyClient();
private void btnLogIn_Click(object sender, EventArgs e)
{
client.login()
private void btnSearch_Click(object sender, EventArgs e)
{
client.search()
现在,我面临的问题是,有时客户端断开连接,我必须使用另一个对象重新登录,我不能使用相同的对象。
我正在考虑使用按钮重新登录,创建一个新对象,并继续使用相同的名称" client"对于其他事件的对象。
有什么想法吗?
答案 0 :(得分:0)
您可以将client
变量包装在属性或方法中,该属性或方法封装逻辑以确定是否需要重新连接。假设您在客户端中有一个名为wasDisconnected()
的方法来执行此操作。你可以像这样“延迟加载”类级变量。
public partial class Form1
{
MyClient _client;
protected MyClient client
{
get
{
// Check if we need to reconnect.
if (_client == null || client.wasDisconnected())
_client = new MyClient();
return _client;
}
}
// ...
}
在这种情况下,您的click
方法将保持不变,但现在他们将通过属性而不是直接访问MyClient实例。