使用什么类型的课程

时间:2012-01-30 21:34:25

标签: c# class static abstract public

我对类和东西不太熟悉,所以我在这里要求一些简单的帮助..我有很多数据库函数,我使用了很多,所以我想我会把它放到一个类我可以从需要数据库数据的其他类调用。

例如,我有一个输出人员列表的窗口,我在编辑人窗口中有相同的代码,我为这两个人重复相同的代码。

我用的是什么课?我很迷茫。我已将其实现为静态类,但我不确定它是否正常工作。

如果有人能够简单介绍哪些课程我会非常感激。

由于

3 个答案:

答案 0 :(得分:1)

静态类基本上是一个打扮的全局变量。您不创建静态类的实例。所有方法都必须是静态的,如果它保留在任何数据上,则数据字段必须是静态的。这意味着使用此类的所有代码都将使用相同的数据。

如果您的目的是集中db访问痛点,如登录和会话,静态类可能是合适的。请始终记住,来自不同客户端的调用将从静态类中看到相同的详细信息。

非静态类或实例是在每个实例中存储不同数据的东西。您必须先创建该类的对象实例,然后才能对其执行任何操作。创建对象的优点是构造其自己的实例的每个使用者都与该类的任何其他使用者隔离。如果窗口A构造了一个db类的实例并执行了操作abc,并且窗口B构造了自己的db类实例,并且操作xyz,abc和xyz不会交叉路径 - 它们之间不共享任何数据。

通常,对象实例通常比全局/静态类更受欢迎,因为静态类的共享特性会产生消费者可能不知道的数据依赖性和副作用。

答案 1 :(得分:0)

你可以创建一个像这样的类 -

     public class DBOperator 
     {
       //Only static methods, so no public constructor
       private DBOperator()
       {
       }

       // static constructor          
       static DBOperator()
       {
          // do initialization stuff
        } 

        // have static functions to operate on your database
        public static int ExecuteNonQuery(string storedProc, params object[]         parameters)
        {}
     }

答案 2 :(得分:0)

您可以将重复的代码放入方法中,并从多种方法调用该方法。

关于DB类,您可以将所有数据库代码放在一个类中 - 创建一个实例并从其他类中调用它。

如果你只是开始“整理”那里与DB相关的所有内容,那么DB类本身最终会变得混乱。

阅读OO并研究一种更有效的方法来设计你的程序。