课程表

VB.Net基本教程

VB.Net高级教程

工具箱
速查手册

VB.Net - Sub过程

当前位置:免费教程 » 程序设计 » VB.Net

正如我们在上一章中提到的,Sub过程是不返回任何值的过程。 我们在所有的例子中一直使用Sub过程Main。 到目前为止,我们已经在这些教程中编写控制台应用程序。 当这些应用程序开始时,控制转到主子程序,它反过来运行构成程序主体的任何其他语句。

定义子过程

Sub语句用于声明子过程的名称,参数和主体。 Sub语句的语法是:

  1. [Modifiers] Sub SubName [(ParameterList)]
  2. [Statements]
  3. End Sub
  • Modifiers 修饰符 :指定过程的访问级别;可能的值有:Public, Private, Protected, Friend, Protected Friend and information regarding overloading, overriding, sharing, and shadowing.

  • SubName 子名 :表示该子的名字

  • ParameterList 参数列表 :指定参数的列表

示例

以下示例演示了子过程CalculatePay,它接受两个参数小时和工资,并显示员工的总工资:
  1. Sub CalculatePay(ByRef hours As Double, ByRef wage As Decimal)
  2. 'local variable declaration
  3. Dim pay As Double
  4. pay = hours * wage
  5. Console.WriteLine("Total Pay: {0:C}", pay)
  6. End Sub
  7. Sub Main()
  8. 'calling the CalculatePay Sub Procedure
  9. CalculatePay(25, 10)
  10. CalculatePay(40, 20)
  11. CalculatePay(30, 27.5)
  12. Console.ReadLine()
  13. End Sub
  14. End Module


当上述代码被编译和执行时,它产生了以下结果:

  1. Total Pay: $250.00
  2. Total Pay: $800.00
  3. Total Pay: $825.00


按值传递参数

这是将参数传递给方法的默认机制。 在这种机制中,当调用方法时,为每个值参数创建一个新的存储位置。 实际参数的值被复制到它们中。 因此,对方法中的参数所做的更改对参数没有影响。


在VB.Net中,可以使用ByVal关键字声明引用参数。 下面的例子演示了这个概念:

  1. Module paramByval
  2. Sub swap(ByVal x As Integer, ByVal y As Integer)
  3. Dim temp As Integer
  4. temp = x ' save the value of x
  5. x = y ' put y into x
  6. y = temp 'put temp into y
  7. End Sub
  8. Sub Main()
  9. ' local variable definition
  10. Dim a As Integer = 100
  11. Dim b As Integer = 200
  12. Console.WriteLine("Before swap, value of a : {0}", a)
  13. Console.WriteLine("Before swap, value of b : {0}", b)
  14. ' calling a function to swap the values '
  15. swap(a, b)
  16. Console.WriteLine("After swap, value of a : {0}", a)
  17. Console.WriteLine("After swap, value of b : {0}", b)
  18. Console.ReadLine()
  19. End Sub
  20. End Module


当上述代码被编译和执行时,它产生了以下结果:

  1. Before swap, value of a :100
  2. Before swap, value of b :200
  3. After swap, value of a :100
  4. After swap, value of b :200

它表明,虽然它们在函数内部已更改,但值中没有变化。


通过引用传递参数

引用参数是对变量的存储器位置的引用。 当您通过引用传递参数时,与值参数不同,不会为这些参数创建新的存储位置。 参考参数表示与提供给该方法的实际参数相同的存储器位置。


在VB.Net中,可以使用ByRef关键字声明引用参数。 以下示例演示了这一点:

  1. Module paramByref
  2. Sub swap(ByRef x As Integer, ByRef y As Integer)
  3. Dim temp As Integer
  4. temp = x ' save the value of x
  5. x = y ' put y into x
  6. y = temp 'put temp into y
  7. End Sub
  8. Sub Main()
  9. ' local variable definition
  10. Dim a As Integer = 100
  11. Dim b As Integer = 200
  12. Console.WriteLine("Before swap, value of a : {0}", a)
  13. Console.WriteLine("Before swap, value of b : {0}", b)
  14. ' calling a function to swap the values '
  15. swap(a, b)
  16. Console.WriteLine("After swap, value of a : {0}", a)
  17. Console.WriteLine("After swap, value of b : {0}", b)
  18. Console.ReadLine()
  19. End Sub
  20. End Module


当上述代码被编译和执行时,它产生了以下结果:

  1. Before swap, value of a : 100
  2. Before swap, value of b : 200
  3. After swap, value of a : 200
  4. After swap, value of b : 100
转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号