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