-1

私は今から 3 日間 C# を使用しています。初歩的な質問ですみません。

とりわけ、select-statements を送信するためのメソッドを含む独自のデータベース クラスを構築しようとしています。

connect()オブジェクトによって以前に呼び出されなかったときに、このメソッドが呼び出されないようにするにはどうすればよいですか? 単純なブール変数について考えましたが、これは私の意見では非常に醜い解決策です。

4

3 に答える 3

5

「クエリを実行できるライブ接続」から「接続できるもの」のアイデアを分離します。

Connectメソッドを作成します( .NET 命名規則に従うことを実際に開始する必要があります)。クエリできるものを返します。

そうすれば、各クラスが 1 つのジョブを担当し、接続する前にクエリを試行するという概念をコードで表現することさえ回避できます。

于 2013-03-14T10:02:43.643 に答える
0

ブール値は必要ありません。

次のようなことをしてください:

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

シンプルで、何か問題が発生した場合に常に con オブジェクトにアクセスできなくなります。

于 2013-03-14T10:10:54.993 に答える
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 に答える