html5中文学习网

您的位置: 首页 > 网络编程 > ASP.NET » 正文

HOW TO:初始化共享变量_.NET教程_编程技术

[ ] 已经帮助:人解决问题
变量

“初始化共享变量”本不是一个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




 



U3FHTML5中文学习网 - HTML5先行者学习网
U3FHTML5中文学习网 - HTML5先行者学习网
(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助