gpt4 book ai didi

c# - 什么时候在 C# 中使用类?

转载 作者:太空狗 更新时间:2023-10-29 21:05:30 26 4
gpt4 key购买 nike

<分区>

我对 C# 语言比较陌生,但是在 Google 搜索和 Stack Overflow 的大量帮助下,我已经完成了很多应用程序,包括使用 Office、系统服务、进程、WMI、SQL、Linq 和事件目录...

尽管已成功让这些应用正常运行,但我仍然不确定 C# 语言中的许多事情,例如良好的代码实践和使用许多关键字等。

C#类;我知道我可以用它们做什么,我知道构造函数和析构函数、实例化和属性,但我不确定什么时候我应该使用它们。到目前为止,我已经在我的 Form1.cs 文件中用不同的方法编写了我的所有代码。这些方法使用完全不同的 API 做一系列不同的事情。这显然意味着尝试维护该代码会变得非常困难,而且我发现在我的 Form1.cs 中查找任何内容越来越令人沮丧。

我想问你们的问题是我应该将我的代码分成不同的类吗?我试图将与 SqlConnection 和 SqlCommands 相关的东西拆分到一个单独的类中,但没有在我的 Form1.cs 中多次实例化同一个类,我看不出这有什么更容易或有任何好处。

我一直在尝试拼凑一个新的应用程序,但这次将功能保留在它自己的类中,我希望有人可以告诉我我很愚蠢并且做错了,或者至少给我一些指导。

此应用最终将从 App.Config 加载我的连接字符串,连接到 SQL 数据库并使用数据库中的多个表填充数据集。这绝不是目前的功能,因为我无法理解整个类问题。

partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

string myConnectionString;

private void Form1_Load(object sender, System.EventArgs e)
{
AppConfig cfg = new AppConfig();
if (cfg.loadConfig())
{
myConnectionString = cfg.myConnectionString();
}

if (!String.IsNullOrEmpty(myConnectionString))
{
SQLConn SQL = new SQLConn();
if (SQL.createConnection(myConnectionString))
{
MessageBox.Show("Connected!");
}
}
}
}

class myDataSet
{
DataSet DataSet()
{
DataSet ds = new DataSet();

SQLConn sql = new SQLConn();

return ds;
}

public void fillData()
{
try
{
SqlCommand sqlCmd = new SqlCommand("SELECT * FROM hardware");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}

class SQLConn : IDisposable
{
SqlConnection sqlConn;
public bool createConnection(string myConnectionString)
{
sqlConn = new SqlConnection();
sqlConn.ConnectionString = myConnectionString;
try
{
sqlConn.Open();
return true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return false;
}

public void Dispose()
{
if (sqlConn.State == ConnectionState.Open)
{
sqlConn.Close();
sqlConn.Dispose();
}
}
}

class AppConfig
{
Configuration cfg;

public bool loadConfig()
{
try
{
cfg = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
if (!File.Exists(cfg.FilePath))
{
MessageBox.Show("No configuration file");
}
return true;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
return false;
}

public string myConnectionString()
{
string connectionString = ConfigurationManager.ConnectionStrings["IT_ProjectConnectionString"].ConnectionString;
return connectionString;
}
}

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com