何时在C#中使用Classes?

何时在C#中使用Classes?,第1张

概述我对C#语言比较陌生,但是在谷歌搜索和Stack Overflow的帮助下我已经完成了许多应用程序,包括使用Office,系统服务,进程,WMI,SQL, Linq和Active Directory. .. 虽然尽管在使这些应用程序正常运行方面取得了成功,但我仍然不确定C#语言中的许多内容,例如良好的代码实践和使用许多关键字等. C#类;我知道我可以用它们做什么,我知道构造函数和析构函数,实例化和 我对C#语言比较陌生,但是在谷歌搜索和Stack Overflow的帮助下我已经完成了许多应用程序,包括使用Office,系统服务,进程,WMI,sql,Linq和Active Directory. ..

虽然尽管在使这些应用程序正常运行方面取得了成功,但我仍然不确定C#语言中的许多内容,例如良好的代码实践和使用许多关键字等.

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

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

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

此应用程序最终将从App.Config加载我的连接字符串,连接到sql数据库并使用数据库中的多个表填充DataSet.这绝不是功能性的,因为我无法理解整个Classes问题.

非常感谢 :)

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;    }}
解决方法 OOP背后的原理或多或少地说你应该尽可能地分解内容,以便相关的东西在他们自己的类中组合在一起,就像你的例子中的sql东西一样.另一个经常使用的例子是汽车的例子 – 如果你需要处理汽车的数据,你可以制作一个包含相关变量的汽车类,如最高速度,名称,颜色和适当的方法,例如驾驶(双倍距离)或类似的东西.

如果您不想要该类的不同对象并且在多个点上需要相同的行为,则可以通过多种方式阻止多个实例:如果所有点都在您的Form1中,您只需要将类作为类成员实例化一次,你可以在整个Form1类中使用它.如果您需要从不同的类访问它,您可以拥有一个全局变量(大多数人认为这是不好的做法)或者使您需要访问静态类 – 这样,您根本不需要实例化它.

如果你的应用程序非常小,你可能会把它全部放在你的Form1类中,但正如你自己注意到的那样,它会很快变得混乱和混乱.将类视为对代码进行排序的机会.想想与什么相关的东西,以及你期望在一起找到什么,并将这些东西放在课堂上.如果你坚持这一点,你最终得到的代码不那么令人沮丧,找到代码并且具有清晰和逻辑的结构.一旦事情变得更复杂,你就可以利用继承之类的东西,你可以重用那些在不同的应用程序中可能需要的东西(例如,数据库的东西).

这是一个非常简短和非常粗略的描述.我自己都不知道有关这个主题的好书(除了那些适合全程编程的初学者,这在这里似乎不合适),但我建议在OOP上找一个或者在那个主题上寻找好的介绍文章.就个人而言,我发现CodeProject是一个很好的文章来源. Here is one on OOP.

总结

以上是内存溢出为你收集整理的何时在C#中使用Classes?全部内容,希望文章能够帮你解决何时在C#中使用Classes?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1262961.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存