私は今から 3 日間 C# を使用しています。初歩的な質問ですみません。
とりわけ、select-statements を送信するためのメソッドを含む独自のデータベース クラスを構築しようとしています。
connect()
オブジェクトによって以前に呼び出されなかったときに、このメソッドが呼び出されないようにするにはどうすればよいですか? 単純なブール変数について考えましたが、これは私の意見では非常に醜い解決策です。
私は今から 3 日間 C# を使用しています。初歩的な質問ですみません。
とりわけ、select-statements を送信するためのメソッドを含む独自のデータベース クラスを構築しようとしています。
connect()
オブジェクトによって以前に呼び出されなかったときに、このメソッドが呼び出されないようにするにはどうすればよいですか? 単純なブール変数について考えましたが、これは私の意見では非常に醜い解決策です。
「クエリを実行できるライブ接続」から「接続できるもの」のアイデアを分離します。
Connect
メソッドを作成します( .NET 命名規則に従うことを実際に開始する必要があります)。クエリできるものを返します。
そうすれば、各クラスが 1 つのジョブを担当し、接続する前にクエリを試行するという概念をコードで表現することさえ回避できます。
ブール値は必要ありません。
次のようなことをしてください:
if (con == NULL || !con.isOpen())
{
// throw an exception or return
}
シンプルで、何か問題が発生した場合に常に con オブジェクトにアクセスできなくなります。
状態を格納する State フィールドを作成し、それを使用することができます。この単純な例では、ブール値のConnected (True / False) を取得していますが、enum
Connected、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...
}
}