VB.NET模块的总结(二)

 

' Module1.vb文件中的代码:

Module  MainClas
  
Sub  Main()

    
Dim  theFirstInstanceOfTestscope  As   New  TestScope
    theFirstInstanceOfTestscope.TestScopeSubMethodOne()
    
Dim  aStr  As   String   =  theFirstInstanceOfTestscope.TestScopeFunctiongMethodOne()
    Console.WriteLine(aStr)

    
Dim  theFirstInstanceofOutTestScope  As   New  OutTestScope()
    
' 同上作用一样,实例化OutTestScope类
     ' Dim theFirstInstanceOfOutTestScope As OutTestScope
     ' theFirstInstanceOfOutTestScope = New OutTestScope()
     ' 同上作用一样,实例化OutTestScope类
     ' Dim thefirstinstanceofouttestscope = New OutTestScope()
    theFirstInstanceofOutTestScope.OutTestScopeSubMethodOne()
    
Dim  aaStr  As   String   =  theFirstInstanceofOutTestScope.OutTestScopeFunctiongMethodOne()
    Console.WriteLine(aaStr)
    Console.WriteLine(theFirstInstanceofOutTestScope.cc)

    theFirstInstanceOfTestscope.DiaoYongMMethod() 
' 通过类的实例调用其他模块的方法
     Dim  mTwoClassFiled  As   New  mTwoClass
    mTwoClassFiled.mTwoClassMethod() 
' 模块直接调用其他模块的类中的方法
    Console.WriteLine(mThreeMethod())  ' 模块直接调用其他模块的方法
    Console.ReadLine()

  
End Sub
End Module


Class  TestScope
  
Dim  a  As   String
  
Private  b  As   String
  
Public  c  As   String
  
Sub   New ()  ' 无参数构造函数
     Me .a  =   " Dim_a "
    
Me .b  =   " Private_b "
    
Me .c  =   " Public_c "
  
End Sub
  
' Public Static Sub TestScopeMethodOne()  '不能用Static去声明Sub方法(或者Sub过程),提示错误:方法不能声明为“Static”
   Public   Sub  TestScopeSubMethodOne()
    Console.WriteLine(
String .Format( " TestScopeSubMethodOne():{0} {1} {2} " , a, b, c))
  
End Sub
  
' Public Static Function TestScopeFunctiongMethodOne() As String  ''不能用Static去声明Function方法(或者Function函数),提示错误:方法不能声明为“Static”
   Public   Function  TestScopeFunctiongMethodOne()  As   String
    
Return   String .Format( " TestScopeFunctiongMethodOne():{0} {1} {2} " , a, b, c)
  
End Function
  
Public   Sub  DiaoYongMMethod()
    
' mTwoMethod()
    Console.WriteLine(mThreeMethod())
  
End Sub
End Class

Module  mTwo
  
' Public Sub mTwoMethod()
   Private  mTwoFiled  As   String   =   " mTwoFiled "
  
Private   Sub  mTwoMethod()   ' 模块中的方法可以用Private修饰,但只能在当前模块中使用,不能在其他模块中使用
    Console.WriteLine(mTwoFiled)
  
End Sub
  
Class  mTwoClass
    
Sub  mTwoClassMethod()
      mTwoMethod()
    
End Sub
  
End Class
End Module

Module  mThree
  
Private   Sub  mPrivateThreeMethod()
    Console.WriteLine(
" mPrivateThreeMethod() " )
  
End Sub
  
' Public Function mThreeMethod() As String
   Function  mThreeMethod()  As   String   ' 模块中的方法隐士共享,可以在模块外部访问,加不加Public都一样
    mPrivateThreeMethod()
    
Return   " mThreeMethod() "
  
End Function
End Module

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

' 一个文件中可以定义多个模块
'
可以像C#一样在另一个文件中定义一类,该类的用法和在一个文件中定义的类的用法相同(包裹字段,方法,属性等等都一样)

' 模块中的方法隐士共享,可以在模块外部(其他模块,类,结构等)被直接访问,加不加Public都一样
'
模块中的方法不能声明为Protected,Shared和Static,只能声明为Public(默认就是Public)和Private。
'
但模块中类(或者结构)的方法可以声明为Public,Private,Protected和Shared。



' OutTestScope.vb文件中的代码:

Public   Class  OutTestScope
  
Dim  aa  As   String
  
Private  bb  As   String
  
Public  cc  As   String
  
Sub   New ()  ' 无参数构造函数
     Me .aa  =   " Dim_aa "
    
Me .bb  =   " Private_bb "
    
Me .cc  =   " Public_cc "
  
End Sub
  
' Public Static Sub TestScopeMethodOne()  '不能用Static去声明Sub方法(或者Sub过程),提示错误:方法不能声明为“Static”
   Public   Sub  OutTestScopeSubMethodOne()
    Console.WriteLine(
String .Format( " OutTestScopeSubMethodOne():{0} {1} {2} " , aa, bb, cc))
  
End Sub
  
' Public Static Function TestScopeFunctiongMethodOne() As String  ''不能用Static去声明Function方法(或者Function函数),提示错误:方法不能声明为“Static”
   Public   Function  OutTestScopeFunctiongMethodOne()  As   String
    
Return   String .Format( " OutTestScopeFunctiongMethodOne():{0} {1} {2} " , aa, bb, cc)
  
End Function
End Class

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值