使用同一对象实例的 C# 多表单应用程序?

C# Multiple form application using same instance of object?

我有多个表单需要与数据库通信。我有一个嵌入式数据库 sqlite,它只需要一个 dll 文件。主窗体创建 SQLite 对象

using System.Data.SQLite;
...
public  SQLiteConnection sqlite_conn;
public  SQLiteCommand sqlite_cmd;
public  SQLiteDataReader sqlite_datareader;

稍后在代码中初始化。 我的问题是,如果我有多种形式需要与数据库通信,最好的做法是给它们 using System.Data.SQLite 并创建它们自己的对象实例,或者以某种方式使用来自多种形式的相同对象,而不是同时...

Those classes aren't thread-safe,所以你不能一次实例化它们并在可见的表单之间共享它们(或者更准确地说,访问数据库)。

如果您觉得自己在到处复制代码,请将该代码放入 class 中并对其进行参数化,这样您就可以将 class 的一个实例注入到所有需要它的表单中.

Perhaps you can use Entity Framework,这有助于删除重复的数据库代码。