今天在做底层数据库操作时,又用到了静态类,所以,单拿出去再说说它

静态类一定于一个sealed
abstract类,首要的1个独到之处是写在栈中,安全便捷稳定,而且在实践的时候,10分事先。

类能够注明为 static
的,以提醒它仅包罗静态成员。无法应用
new
关键字创设静态类的实例。静态类在加载包括该类的次第或命名空间时由 .NET
Framework 集体语言运转库 (CL奥迪Q5;特指:C#语言) 自动加载。

  它们仅包蕴静态成员

它们不能够被实例化。

它们是密封的。

它们不可能包蕴实例构造函数)。

由此创设静态类与创建仅蕴涵静态成员和村办构造函数的类大概相同。私有构造函数阻止类被实例化

优点

选用静态类的优点在于,编译器能够实施行检查查以保险不致偶然地抬高实例成员。编译器将确认保障不会创立此类的实例。

静态类是密封的,因而不可被一连。静态类不能够包涵构造函数,但仍可表明静态构造函数以分配早先值或安装有个别静态状态。

注意

静态类不可能有实例构造器。

静态类不可能有别的实例成员。 静态类不能够使用abstract或sealed修饰符。
静态类暗中同意继承自System.Object根类,无法显式钦命其余别的基类。

静态类无法钦定别的接口达成。

静态类的分子不能够有protected或protected internal访问爱惜修饰符。

看代码更清楚一些:

 public static class ReflectionFactory //类自动由CLR自动加载,安全高速稳定,它没有实例成员,不能被实例化

    {

 

        private static String datastr;

        static ReflectionFactory() //静态构造方法在应用程序开始时执行,且只执行一次

        {

            XmlDocument xmlDoc = new XmlDocument();

            xmlDoc.Load(@"f:/config/config.xml");

            XmlNode xmlNode = xmlDoc.ChildNodes[1];

            datastr = xmlNode.ChildNodes[0].ChildNodes[0].Value;

        }

        public static IData MakeSQL()

        {

            return Assembly.Load("Data").CreateInstance("Data." + datastr) as IData;

        }

 

    }