如果之前没有调用另一个方法,如何防止调用该方法

时间:2013-03-14 09:59:48

标签: c#

我现在和C#一起工作了三天,请原谅我的noobish问题。

我正在尝试构建一个自己的数据库类,其中包含一个sendig select-statements的方法。

当对象之前没有调用connect()时,如何阻止调用此方法?我想到了一个简单的布尔变量,但在我看来,这是一个非常难看的解决方案。

3 个答案:

答案 0 :(得分:5)

从“能够运行查询的实时连接”中分离出“能够连接的东西”的想法。

制作Connect方法(顺便提一下,

这样每个类都负责一项工作,并且在连接之前避免尝试查询的概念,甚至在代码中表示

答案 1 :(得分:0)

你可以有一个State字段来存储状态并使用它。在这个简单的例子中,我有一个布尔已连接(真/假),但你可能有enum连接,断开连接,故障等。

private bool _Connected = false;

public bool Connect()
{
    // ...
    if (success)
    {
        _Connected = true;
    }
}

public bool Disconnect()
{
    // ...

    _Connected = false;
}

public IEnumberable<Data> GetData()
{
    if (!_Connected)
    {
        // Handle not connected here...
    }
}

答案 2 :(得分:0)

不需要布尔值。

只需执行以下操作:

if (con == NULL || !con.isOpen())
{
    // throw an exception or return
}

简单而且总是阻止你在出现问题时访问con对象。