网站公告列表

  没有公告

加入收藏
设为首页
联系站长
您现在的位置: 网络学院 >> 程序设计 >> VB编程 >> 文章正文
  VB.NET类的总结(一)            【字体:
VB.NET类的总结(一)
作者:佚名    文章来源:不详    点击数:    更新时间:2007-9-12    
Module Module1

  
Sub Main()
    
Dim theFirstInstanceOfTestscope As New TestScope
    theFirstInstanceOfTestscope.TestScopeSubMethodOne()
    
'TestScope.TestScopeSubMethodOne()
    Dim aStr As String = theFirstInstanceOfTestscope.TestScopeFunctiongMethodOne()
    Console.WriteLine(aStr)
    Console.ReadLine()
  
End Sub

  
Class TestScope
    
Dim a As String '同Private a As String作用一样。
 类的字段(又称成员变量)默认是Private和实例类型

    Private b As String
    
Public c As String

    
Private Shared d As String

    
Sub New() '无参数构造函数
      Me.a = "Dim_a"
      
Me.b = "Private_b"
      
Me.c = "Public_c"
      TestScope.d 
= "Private Shared_d"
    
End Sub
    
'Public Static Sub TestScopeMethodOne()  '不能用Static去声明Sub方法(或者Sub过程),提示错误:方法不能声明为“Static”
    Public Sub TestScopeSubMethodOne() '如果改成Private,就不能在类的外部访问
      Console.WriteLine(String.Format("TestScopeSubMethodOne():{0} {1} {2}", a, b, c))
      Console.WriteLine(TestScope.d) 
'实例方法能访问Shared成员(其实就是静态成员)
      Dim TestScopeFiled As New TestScope
      TestScopeSharedSubMethodOne(TestScopeFiled)
    
End Sub
    
'Public Static Function TestScopeFunctiongMethodOne() As String  ''不能用Static去声明Function方法(或者Function函数),提示错误:方法不能声明为“Static”
    Public Function TestScopeFunctiongMethodOne() As String '如果改成Private,就不能在类的外部访问
      Return String.Format("TestScopeFunctiongMethodOne():{0} {1} {2}", a, b, c)
    
End Function

    
Public Shared Sub TestScopeSharedSubMethodOne(ByVal filedOne As TestScope)
      
'Return String.Format("TestScopeFunctiongMethodOne():{0} {1} {2}", a, b, c) '错误:    没有类的显式实例,就无法从共享方法或共享成员初始值设定项中引用该类的实例成员
      '这个错误和C#其实是一样的,C#允许实例方法可以访问静态方法和静态字段,但C#不允许类和结构里的静态方法去访问同一个类或结构里的实例方法和实例字段,VB.NET也遵从这个规则。
      filedOne.a = "用传参数的形式调用TestScope类的实例字段"  '但可以用该类的实例做为方法的参数来调用实例字段和实例方法
      Dim sharedMethodFiled As String = filedOne.TestScopeFunctiongMethodOne() '但可以用该类的实例做为方法的参数来调用实例字段和实例方法
      Console.WriteLine("{0}\{1}", filedOne.a, sharedMethodFiled)
      
'fileOne.TestScopeSubMethodOne() 
      Console.WriteLine("TestScopeFunctiongSharedMethodOne")

      
Dim anotherFiled As New TestScope  '还可以通过在静态方法中实例化该类来调用该类的实例字段
      Console.WriteLine(anotherFiled)    '这个方法会用重载的ToString方法来打印该对象

    
End Sub
    
Public Overrides Function ToString() As String
      
'Return MyBase.ToString()
      Return String.Format("{0}::{1}::{2}", a, b, c)
    
End Function
  
End Class

End Module
''''''打印如下--------------
'
TestScopeSubMethodOne():Dim_a Private_b Public_c
'
Private Shared_d
'
用传参数的形式调用TestScope类的实例字段\TestScopeFunctiongMethodOne():用传参数的形式调用TestScope类的实例字段 Private_b Public_c
'
TestScopeFunctiongSharedMethodOne
'
Dim_a::Private_b::Public_c
'
TestScopeFunctiongMethodOne():Dim_a Private_b Public_c

'''''----------


'一点总结"
'
在vb.net中不能用static来声明方法(Sub和Function),并且不能用来声明成员变量,只能用来声明方法(Sub和Function)中的静态变量。   
'
shared既可以用来声明变量也可以用来声明方法,还可以用来声明成员变量,这一点刚好跟static相反。
'
vb.ne中的shared更像C#中static的作用。在vb.net中用shared声明的成员变量(字段)和方法(Sub和Function),只能用类名来访问,而不能用类的实例来访问

'无限循环和无限递归会导致:未处理的“System.StackOverflowException”类型的异常出现在 mscorlib.dll 中
 


本文来源:http://blog.csdn.net/Terry001/archive/2007/08/27/1761203.aspx
站内文章搜索 高级搜索
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
     如何在ado中使用connect…
     vb 贪吃蛇 单人版游戏 (…
     关于在vb中进行com组件的…
     用vb6.0编写自我升级的程…
     vb自动登陆网络站点详解…
     vb打造超酷个性化菜单(…
  • Sevrlet 中防止中文乱码策略

  • (JSP)在文本域中显示超链接n…

  • genexus中对字符串的格式补空…

  • SIP简介,第2部分:SIP SERV…

  • JavaWeb中的Session、Sessio…

  • tomcat下配置jspservletbean…

  • .net程序员的盲点(八):泛…

  • OpenCV在VC.net,VC6.0等中的…

  • 同步租塞SOCKET编程

  • 内存管理内幕--Jonathan Bar…

  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    网络学院©2007 www.23book.net
    为您提供web编程,vb编程,vc编程,服务器架设管理,数据库设计等方面的知识 站长:David