我已经使用 C# 工作了三天,所以请原谅我的菜鸟问题。
我正在尝试构建一个自己的数据库类,其中应包含发送选择语句的方法。
当对象之前未调用
connect()
时,如何防止调用此方法?我考虑过一个简单的布尔变量,但在我看来,这是一个非常丑陋的解决方案。
将“能够连接的东西”与“能够运行查询的实时连接”的概念分开。
使您的
Connect
方法(顺便说一句,您应该真的开始遵循 .NET 命名约定)返回可以查询的内容。
这样,每个类负责一项工作,并且您可以避免在连接之前尝试查询的概念,甚至可以在代码中“表示”。
只需执行以下操作:
if (con == NULL || !con.isOpen())
{
// throw an exception or return
}
简单,如果出现问题,总是会阻止您访问 con 对象。
(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...
}
}