-1

我现在用 C# 工作了三天,所以请原谅我的菜鸟问题。

我正在尝试构建一个自己的数据库类,其中应包含一种用于发送选择语句的方法。

connect()当对象之前未调用此方法时,如何防止调用此方法?我想过一个简单的布尔变量,但在我看来,这是一个非常丑陋的解决方案。

4

3 回答 3

5

将“能够连接的东西”与“能够运行查询的实时连接”分开。

让您的Connect方法(顺便说一下,您应该真正开始遵循.NET 命名约定)返回您可以查询的内容。

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

于 2013-03-14T10:02:43.643 回答
0

你可以有一个 State 字段来存储状态并使用它。在这个简单的例子中,我有一个布尔值Connected (True / False),但你可以有一个enumConnected、Disconnected、Faulted 等。

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...
    }
}
于 2013-03-14T10:06:11.563 回答
0

不需要布尔值。

只需执行以下操作:

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

如果出现问题,简单且始终阻止您访问 con 对象。

于 2013-03-14T10:10:54.993 回答