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

问题描述 投票:0回答:3

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

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

当对象之前未调用

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

c#
3个回答
6
投票

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

使您的

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

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


0
投票

只需执行以下操作:

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

简单,如果出现问题,总是会阻止您访问 con 对象。 


0
投票
Connected

(True / False),但你也可以有一个 enum 与 Connected、Disconnected、Faulted 等。

private bool _Connected = false;

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

public bool Disconnect()
{
    // ...

    _Connected = false;
}

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

	
© www.soinside.com 2019 - 2024. All rights reserved.