Pet Shop 4.0中的Sqlhelper中static关键字分析
来源:互联网 发布:科比0607赛季数据 编辑:程序博客网 时间:2024/05/17 07:46
Sqlhelper里面的方法和字段就不说了,讲讲里面的static关键字用法
static关键字用到类里面的方法以及字段上,就可以用类名直接访问.我想这个基本语法大家都是知道的.下面来讨论为何要在Sqlhelper中用static关键字,这样做有什么好处
1. 首先如果是常用的字段是静态的 如public static readonly string . 所以常用的且以后经常要用到的.特别在Pet Shop里面多出调用.申明成静态有助于减少系统开销.还有一点:与实例无关的方法或字段就可以声明成静态的,以表示他们类的特性
2. 关于Sqlhelper静态方法是否能支持多线程
Sqlhelper方法都是静态的,为何这样.其中就是为了方便调用,且他们是与实例无关的.
上面只是解释了用静态的方法和字段的好处:不用实例化了嘛,可用类名直接调用,且减少系统开销.但是又引入了一个新的问题就是: 静态方法是否支持多线程同步
我们来看看当Pet Shop 项目本身就是用多线程来插入的,静态的方法是否会引起不同步呢,答案是 不会出现多线程同时调用静态方法所引起不同步问题.
因为首先静态的方法只能访问静态的类字段和类的静态方法,如果要在静态类中使用非静态方法或类,字段等,那么就要在静态方法中实例化一个类(前提这个类是可以被实例)并调用一个非静态的方法或非静态的字段.
如Sqlhelper中的一个静态方法
public static int ExecuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
里面的一个SqlCommand cmd = new SqlCommand(); 类变量
所以当多线程调用这个静态方法ExecuteNonQuery时 ,会在内存中建立多个对应的SqlCommand cmd = new SqlCommand();镜像以使每个线程互不干扰. 所以多线程使用Sqlhelper插入数据到数据库是不会相互干扰的
- Pet Shop 4.0中的Sqlhelper中static关键字分析
- C#pet shop 4.0三层架构分析
- PET SHOP 4.0 初学者分析(项目分解)
- Pet Shop 4.0 全面分析(转)
- C#pet shop 4.0三层架构分析
- Pet shop 4.0中profile的介绍
- Pet shop 4.0中profile的介绍
- Pet Shop 游记之DBUtility 一 (SqlHelper中的cmd.Parameters.Clear())
- C#pet shop 4.0三层架构分析(转)
- Pet Shop 4.0 个人版 解析
- .NET Pet Shop 4.0下载
- pet shop 4.0架构解析
- Pet Shop 4 架构与技术分析
- Microsoft .NET Pet Shop 4 架构分析
- Pet Shop 4 架构与技术分析
- Pet Shop 4 架构与技术分析
- pet shop
- Pet Shop 解决方案中的 Visual Studio 项目
- VC 2005/2008 QT 安装
- “代理门”风波之下 魔兽玩家需警惕帐号安全
- 5.12周年纪念 毒霸金色希望之旅公益活动即日启程
- 著名java开源搜索引擎bddbot的简单使用——测试报告
- error LNK2001: unresolved external symbol __DllMainCRTStartup@12解决
- Pet Shop 4.0中的Sqlhelper中static关键字分析
- C语言实现 排序源程序(包括直接插入、希尔、冒泡、快速、简单选择、堆排序)
- 伪装fedora的发行版本
- 日记090510
- 更好地仿真VC++关键字__uuidof
- 如何在Windows 7环境下开发应用?
- 什么是Web3.0,Web3.0究竟说了些什么?
- HttpContext.Current.Request.ServerVariables 所有命名的服务器变量的名称和值。
- css属性含义