如果之前没有调用另一个方法,如何防止调用该方法
本文关键字:方法 调用 何防止 另一个 如果 | 更新日期: 2023-09-27 18:03:45
我已经用c#工作三天了,所以请原谅我的问题。
我正在尝试建立一个自己的数据库类,它将包含一个发送select语句的方法。
当connect()
之前没有被对象调用时,我如何防止这个方法被调用?我想到了一个简单的布尔变量,但在我看来,这是一个非常丑陋的解决方案。
将"能够连接的东西"与"能够运行查询的实时连接"的概念区分开来。
让你的Connect
方法(你应该真的开始遵循。net命名约定)返回一些你可以查询的东西。
这样,每个类负责一个任务,并且您可以避免在连接之前尝试查询的概念,甚至可以在代码中表示。
您可以有一个State字段来存储状态并使用它。在这个简单的例子中,我有一个布尔值连接(真/假),但你可以有一个enum
连接,断开连接,故障等。
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对象。