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

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

时间:2022-12-01 16:00:53浏览次数:63  
标签:单拿 成员 静态 用到 实例 static 不能 数据库 构造函数

静态类相当于一个sealed abstract类,主要的一个优点是写在栈中,安全高速稳定,而且在执行的时候,十分优先。

类可以声明为 ​​static​​​ 的,以指示它仅包含静态成员。不能使用 ​​new​​ 关键字创建静态类的实例。静态类在加载包含该类的程序或命名空间时由 .NET Framework 公共语言运行库 (CLR;特指: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;
}

}

作者:仓储大叔,张占岭,
荣誉:微软MVP

标签:单拿,成员,静态,用到,实例,static,不能,数据库,构造函数
From: https://blog.51cto.com/u_15765017/5902317

相关文章

  • MySQL数据库-数据完整性-笔记
    数据完整性一个数据库就是一个完整的业务单元,可以包含多张表,数据被存储在表中在表中为了更加准确的存储数据,保证数据的正确有效,可以在创建表的时候,为表添加一些强制性的验证......
  • 数据库-介绍-笔记
    1.数据库数据库就是一种特殊的文件,其中存储着需要的数据关系型数据库核心元素数据行(记录)数据列(字段)数据表(数据行的集合)数据库(数据表的集合)2.RDBMSRelationalDataba......
  • MySQL数据库-安装-笔记
    1.服务器端安装安装服务器端:在终端中输入如下命令,回车后,然后按照提示输入sudoapt-getinstallmysql-server当前使用的ubuntu镜像中已经安装好了mysql服务器端,无需再安装,并......
  • MySQL数据库-Navicat图形界面工具操作-笔记
    1.Navicat连接打开navicat,点击工具栏的“连接”,选择“mysql”,弹出窗口如下图在弹出的窗口中填写名称、主机ip、端口、用户名、密码,如下图密码为mysql点击确定,在左侧栏会看到......
  • 数据库级别的MD5加密-2022-12-1
    MD5不可逆CREATETABLE`testmd5`(`id`INT(4)NOTNULL,`name`VARCHAR(20)NOTNULL,`pwd`VARCHAR(50)NOTNULL,PRIMARYKEY(`id`))ENGINE=INNODBDEF......
  • 数据库连接池的使用方法
    数据库连接池概述基本介绍:1、预先在缓冲区防止一定数量的连接,当需要建立连接时,只需要在“缓冲区”中取出一个,使用完毕之后放回去。2、数据库连接......
  • 比 Redis 快 25 倍的内存数据库!
    今年年中,一位前谷歌、前亚马逊的工程师推出了他创作的开源内存数据缓存系统Dragonfly,用C/C++编写,基于BSL许可(BusinessSourceLicense)分发。根据过往的基准测试结果来......
  • python连接数据库
    一、python连接mysqlpython连接MySQL使用pymysql库。1、安装:pipinstallpymysql2、代码importpymysql#建立连接db=pymysql.connect(host="127.0.0.1",port=3306......
  • 数据库之 表与表之间的关系
    数据库之表与表之间的关系表1foreignkey表2则表1的多条记录对应表2的一条记录,即多对一利用foreignkey的原理我们可以制作两张表的多对多,一对一关系多对多:......
  • MySQL数据库的定时备份与还原
    一.MySQL备份1.Cron是Linux的内置服务,可以用以下的方法启动、关闭这个服务:servicecrondstart//启动服务servicecrondstop//关闭服务servicecrondrestart/......