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

本文关键字:方法 调用 何防止 另一个 如果 | 更新日期: 2023-09-27 18:03:45

我已经用c#工作三天了,所以请原谅我的问题。

我正在尝试建立一个自己的数据库类,它将包含一个发送select语句的方法。

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

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

将"能够连接的东西"与"能够运行查询的实时连接"的概念区分开来。

让你的Connect方法(你应该真的开始遵循。net命名约定)返回一些你可以查询的东西。

这样,每个类负责一个任务,并且您可以避免在连接之前尝试查询的概念,甚至可以在代码中表示

您可以有一个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...
    }
}

不需要布尔值

就像这样做:

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

简单,并且总是阻止您在出现错误时访问con对象。