- 热门文章:
- · 怎么触发DataGrid模板列中控件的事件?
- · 刚学ASP.Net,学了个简单的计算器
- · 全选DataGrid里的复选框
- · WEB页面多语言支持解决方案
- · javascript 与 asp.net 的交互
- · 动态模板列更新数据分页的例子
- · DataList 控件分页操作
- · 如何用请求字符串传值给用模式窗口打开的aspx页面。
- · Duwamish7学习笔记1
- · Matt Powell的《Server-Side 异步Web Methhods》
- · DataGrid和DropDownList的一些配合以及使用css定制DataGrid
- · 轻松解决asp.net论坛中的一版块多斑竹和一用户担任多版块斑竹的问题(不用数组和split)
上一篇:HOW TO:检索应用程序当前执行代码的引用信息 >>
HOW TO:初始化共享变量
“初始化共享变量”本不是一个HOW TO问题。这里提出来,主要的再次认识一下NEW。
在创建构造函数时,NEW是很有趣的,Sub New()有别于别的函数,因为它可以出现两次。
Public Class TestClass
Shared Sub New()
@#...
End Sub
Sub New()
@#...
End Sub
@#...
End Class
当 Dim t As New TestClass时,它先执行Shared Sub New()然后再执行Sub New()。Shared Sub New()只执行一次,在实例类中,它在第一个实例产生时执行。
运用这个特性,Shared Sub New()在初始化类的共享变量时就会特别的方便。
下面作一个比较:
在静态类中,
Public Class MyCommand @#使用Shared Sub New()
Private Shared cn As SqlClient.SqlConnection
Shared Sub New()
cn = New SqlClient.SqlConnection("Persist Security Info=False;Integrated Security=SSPI;database=northwind;server=(Local)")
End Sub
Public Shared Function Command(ByVal CommandText As String) As SqlClient.SqlCommand
Return New SqlClient.SqlCommand(CommandText, cn)
End Function
End Class
Public Class MyCommand0 @#不使用Shared Sub New()
Private Shared cn As SqlClient.SqlConnection
Public Shared Function Command(ByVal CommandText As String) As SqlClient.SqlCommand
If cn Is Nothing Then
cn = New SqlClient.SqlConnection("Persist Security Info=False;Integrated Security=SSPI;database=northwind;server=(Local)")
End If
Return New SqlClient.SqlCommand(CommandText, cn)
End Function
End Class
在实例类中,
Public Class MyCommand1 @#使用Shared Sub New()
Private Shared cn As SqlClient.SqlConnection
Private _Command As SqlClient.SqlCommand
Shared Sub New()
cn = New SqlClient.SqlConnection("Persist Security Info=False;Integrated Security=SSPI;database=northwind;server=(Local)")
End Sub
Sub New()
_Command = New SqlClient.SqlCommand("SELECT * FROM Orders", cn)
End Sub
Sub New(ByVal CommandText As String)
_Command = New SqlClient.SqlCommand(CommandText, cn)
End Sub
Public ReadOnly Property Command() As SqlClient.SqlCommand
Get
Return _Command
End Get
End Property
@#以下省略......
End Class
Public Class MyCommand2 @#不使用Shared Sub New()
Private Shared cn As SqlClient.SqlConnection
Private _Command As SqlClient.SqlCommand
Sub New()
If cn Is Nothing Then
cn = New SqlClient.SqlConnection("Persist Security Info=False;Integrated Security=SSPI;database=northwind;server=(Local)")
End If
_Command = New SqlClient.SqlCommand("SELECT * FROM Orders", cn)
End Sub
Sub New(ByVal CommandText As String)
If cn Is Nothing Then
cn = New SqlClient.SqlConnection("ersist Security Info=False;Integrated Security=SSPI;database=northwind;server=(Local)")
End If
_Command = New SqlClient.SqlCommand(CommandText, cn)
End Sub
Public ReadOnly Property Command() As SqlClient.SqlCommand
Get
Return _Command
End Get
End Property
@#以下省略......
End Class
下一篇:怎么触发DataGrid模板列中控件的事件? >>
相关文章:
- · 分享:aspx页面javascript的几个trick
- · 2个页面间不通过Session与url的传值方式
- · Solidworks二次开发—09--添加配合参考
- · Solidworks二次开发—08--判断是什么特征
- · 创建动态数据输入用户界面
- · 可以代替窗体Refresh方法的函数
- · 无外部控件制作多媒体播放器(四)
- · 无外部控件制作多媒体播放器(三)
- · DirectX9 3D快速上手 3
- · AlertButton, 您确定要执行吗?
- · 无外部控件制作多媒体播放器(二)
- · 用TreeView显示数据通用方法
- · 无外部控件制作多媒体播放器(一)
- · Web Browser Express 概述
- · datagrid编辑删除分页
- · 展现C# 清单5.10 生成exe文件执行的问题
- · 联通增值业务“定位之星”L1协议服务端的模拟器
- · 一个自认为写得还可以的存储过程,就是没有注释,看起来有点乱。与ERP的BOM相关的
- · [EnterpriseServices]利用assembly定义我们的组件在COM+中的注册方式
- · 给windows服务添加描述
- · 用户认证管理设计方案
- · Solidworks二次开发—07—控制草图对象
- · 数据库事务处理的另外一种方法
- · 《Essential .Net》读书笔记 - Chapter 3
- · DX图形显示基本流程(基于MESH静态模型绘制----托管代码)
- · 如何让 DevExpress 的 DateEdit 控件正确显示日期的周名
- · ASP.net下的前台日历控件源代码(不刷新页面)
- · 通过可视化继承和页面模板控制站点设计
- · 在ASP.Net中两种利用CSS实现多界面的方法
- · 数据表单向导的快速实现
- · Posting form data from ASP.NET page to another URL
- · Asp.net中Treeview终极解决方案
- · 解决ASP.NET创建的线程的用户改变引发的拒绝访问错误
- · 有关sql注入
- · 一个动态编译的例子
- · 一个拷贝整个文件夹(包括子文件夹)的方法(原创)
- · 在ASP.NET中实现弹出日历
- · 在DataGrids和DropDownLists中使用ADO
