[VB.NET]初学者教程002

  1. VisualBasic.NET中的语言新变化
  2. 简介
  3. 要快速创建企业级的Web应用程序,开发人员必须依赖于可伸缩性、强壮性和可重用性等商业逻辑。在过去的几年中,面向对象的程序设计成为符合这些要求的系统的首要方法。使用面向对象的编程语言有助于使大规模的系统更易于理解、更易于调试、升级更迅速。
  4. 为了使VisualBasic开发人员能够从面向对象设计中受益并简化企业级Web应用程序的开发,VisualBasic的下一个版本-——VisualBasic.NET将支持包括实现继承在内的全部面向对象的语言特性。有了这些语言特性,VisualBasic.NET将具有快速开发企业级关键应用所需要的所有能力,同时保持使其成为世界上最流行的开发工具的直接访问性。
  5. VisualBasic.NET提供了一流的面向对象的程序设计语言特性,诸如实现继承、重载和参数化的构造器。此外,开发人员可以通过显式的自由线程编写具有高度可伸缩性的代码,同时通过其它现代化的语言概念如结构化的异常处理等编写具有较高可维护性的代码。VisualBasic.NET将提供开发人员创建强壮、可伸缩的分布式Web应用所需要的所有语言特性:
  6. 新增的面向对象编程特性
  7. l继承
  8. l重载
  9. l参数化的构造器
  10. 其他的现代化的语言特性
  11. l自由线程
  12. l结构化的异常处理
  13. l严格类型检查
  14. l共享成员
  15. l初始化设置
  16. 语言更新的历史
  17. VisualBasic语言有很长的更新历史,这与Windows平台的基本性变化是相关的。例如:对QuickBasic的显著改变是支持Windows3.0的GUI开发并产生了第一个版本的VisualBasic。在VisualBasic4.0中向基于COM编程的转变产生了创建DLL的语言概念。在VisualBasic5.0中,其语言发展到支持COM控件的创建。
  18. 随着每一次连续的修改,VisualBasic的流行程度越来越高。新VisualBasic面向对象的语言特性为开发人员提供了创建企业级Web应用程序的能力,这必将延续这种趋势。
  19. 面向对象的程序设计
  20. 在传统的结构化程序设计中数据存储分离与程序代码,这存在着一些弊端。所有的代码被书写成结构化的,而不是模块。因为数据元素可以从任何代码中访问,它可能在开发人员不知道的情况下别修改。这可能会导致非常难于调试的运行时错误。此外,程序维护可能成为一项重要的任务。理解结构化编程中修改一行代码所造成的全局影响是非常困难的。最后,依赖于开发人员控制代码和数据结果会导致较低的可重用性。
  21. 面向对象的程序设计(OOP)解决了这些问题,它将数据和在其上实施的方法包装成一个独立的单元,叫做对象。一个对象的数据可以隐藏以防止未经授权的修改。此外,对象公开一组可以在数据上进行操作的公共方法。这种概念叫做封装。由于实现细节和接口相分离,底层的编程逻辑可以在后期改变而不必担心破坏调用对象的代码。
  22. OOP还允许开发人员通过继承同时重用代码和数据。通过从先前确定的对象中继承,开发人员可以更迅速地构造复杂的应用程序。由于编写新的代码总是会有带入错误的潜在可能,重用经过测试的代码可以使产生额外错误的可能性达到最小。
  23. 为了适应这些需要,VisualBasic.NET将提供一些新增的语言特性,这些特性可以使其拥有以上所描述的种种益处,使其成为一流的面向对象的编程语言。
  24. 继承
  25. 一直以来对VisualBasic特性的要求中呼声最高的就是对继承的支持。在Internet时代的开发要求快速地组装和大量的重用。VisualBasic现在完全实现继承,包括可视化窗体的继承。
  26. 开发人员可以使用新的关键字Inherits从一个已存在的类中派生。
  27. Class1
  28. FunctionGetCustomer()
  29. ...
  30. EndFunction
  31. Class2
  32. InheritsClass1
  33. FunctionGetOrders()
  34. ...
  35. EndFunction
  36. 继承语句支持所有与继承相关的性质。派生类的实例支持所有基类所支持的方法和接口。当然,派生类可以扩展基类所支持的方法和接口的集合。派生类可以使用Overrides关键字来替代基类中定义的方法。为减少编程错误,VisualBasic会防止意外的替代一个函数。只有声明为“可替代”的函数被允许在派生类中被替代。
  37. 重载
  38. VisualBasic现在允许函数重载,这使开发人员具有建立一个拥有相同名称,但参数类型不同的过程或函数的能力。
  39. 当对象模型中规定了要使用名称相近但操作于不同类型的数据之上的过程时,继承尤其有用。例如:一个可能表现为几种不同数据类型的类可以有这样一个Display过程:
  40. OverloadsSubDisplay(theCharAsChar)
  41. ...
  42. OverloadsSubDisplay(theIntegerAsInteger)
  43. ...
  44. OverloadsSubDisplay(theDoubleAsDouble)
  45. 如果没有继承,你就需要为每个过程使用不同的名称或使用Variant参数。重载提供了一种更为清晰、更为有效的方法来处理多种数据类型。
  46. 参数化的构造器
  47. 参数化的构造器(或简称为“构造器”)允许创建一个类的新实例的同时向这个实例传递参数。构造器对于面向对象的编程来说是必需的。因为它允许用户定义的构造代码通过实例的创建者传递参数。它们通过允许一个新的对象实例在一个单独的表达式中创建并初始化以简化客户机程序的代码。
  48. 其他的现代化语言特性
  49. VisualBasic.NET增加了一些简化具有强壮性和可伸缩性应用开发的新概念。这些特性包括自由线程、结构化的异常处理、严格的类型安全等以及诸如初始化设置和共享成员等能够提高生产率的新特性。
  50. 自由线程
  51. 现在当开发人员在VisualBasic中创建应用程序时,他们所编写的代码是同步的。这意味着每行代码要在下一行代码之前执行。开发Web应用程序的时候,可伸缩性是关键。开发人员需要是并行处理成为可能的工具。
  52. 通过自由线程,开发人员可以生成一个线程来完成一些运行时间长的任务、执行一个复杂的查询或运行一个多部分的计算,而应用程序的其它部分继续执行,提供了异步处理。
  53. SubCreateMyThread()
  54. DimbAsBackGroundWork
  55. DimtAsThread
  56. Setb=NewBackGroundWork()
  57. Sett=NewThread(NewThreadStart(AddressOfb.Doit))
  58. t.Start
  59. EndSub
  60. ClassBackGroundWork
  61. SubDoIt()
  62. ...
  63. EndSub
  64. EndClass
  65. 结构化的异常处理
  66. 开发企业级的应用程序要求创建可重用的、可维护的部件。在过去的VisualBasic版本中,Basic语言的一个具有争议的方面是其对错误处理的支持。开发人员已经发现一致的错误处理方案意味着大量的赋值代码。利用现存的OnErrorGoto语句的错误处理方法有时会减缓大规模应用程序的开发和维护。其叫法就反映出这样一些问题:如Goto所意味的,当一个错误发生时,控制权转移到子程序中一个有标记的位置。一旦错误代码运行,它必须时常通过另外的清除位置来转向,而后者又要经过一个标准的Goto,最后还是要通过其他的Goto或Exit来退出过程。使用ResumeNext的多种组合来处理几个不同的错误将会产生难以读懂的代码并且在执行路径没有被完全考虑到的时候会导致频繁的错误。
  67. 利用Try...Catch...Finally,这些问题将不复存在,开发人员可以嵌套其异常处理,同时这是一种用于编写在正常条件和异常条件下执行清洁代码的控制结构。
  68. SubSEH()
  69. Try
  70. Open"TESTFILE"ForOutputAs#1
  71. Write#1,CustomerInformation
  72. Catch
  73. Kill"TESTFILE"
  74. Finally
  75. Close#1
  76. Endtry
  77. EndSub
  78. 严格的类型检查
  79. 当前的VisualBasic语言在其可能产生隐式的类型强制转换上是非常自由的。对于赋值和除了引用方式之外的参数传递,VisualBasic编译器可以允许几乎任何一种数据类型通过发生运行时强制类型转换向其他数据类型转换。如果要转换的值不能在没有数据损失的情况下被转换,那么运行时的强制转换可能会失败。通过增加一个新的编译选项,VisualBasic可以对任何可能在运行时发生错误的转换产生编译时错误。选项Strict通过在要求一个可能在运行时失败的转换或诸如在数字类型和字符串之间的在用户预期之外的自动转换时产生错误来改善类型安全。
  80. 共享成员
  81. 共享成员是指由类的所有实例所共享的数据和函数成员。在类的所有实例中共享一个数据成员或函数的单个实例是使用继承的VisualBasic应用程序所需要的。一个共享数据成员独立地存在于类的每个实例中。共享方法不同于普通的方法,它并不是隐式的传递类的一个实例。由于这个原因,在共享方法中对非共享数据成员的无限制引用是不允许的。共有的共享成员可以被间接地访问,而且它们可以从类的实例后期绑定。
  82. 初始化设置
  83. VisualBasic.NET支持在变量的声明行中对其初始化。初始化设置可以在包括控制结构的任何地方使用。含有初始化设置的过程级声明的语义与一个声明语句后紧跟一个赋值语句是相同的。换句话说,语句
  84. DimXAsInteger=1与
  85. DimXAsInteger
  86. X=1是相同的。
  87. 结束语
  88. VisualBasic现在是一流的面向对象编程语言,使用VisualBasic.NET,开发人员可以通过显式的自由线程创建高度可伸缩的代码。他们所编写的代码增加了如结构化异常处理等现代化语言概念的使用,将具有很高的可维护性。VisualBasic将为开发人员创建强壮的、可伸缩的分布式Web应用提供所需要的一切语言特性。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强制返回为文本 -------------------------------- 数字类型的格式化 --------------------------------     固定格式参数:     General Number 普通数字,如可以用来去掉千位分隔号     format$("100,1
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办法, Format 或者FormatDateTime 竟然结果和系统设置的区域语言的日期和时间格式相关。意思是尽管你用诸如 Format(Now, "MM/dd/yyyy"),如果系统的设置格式区域语言的日期和时间格式分隔符是"-",那他还会显示为 MM-dd-yyyy     只有拼凑: <%response.write
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace My ‘全局错误处理,新的解决方案直接添加本ApplicationEvents.vb 到工程即可 ‘添加后还需要一个From用来显示错误。如果到这步还不会则需要先打好基础啦 ‘======================================================== ‘以下事件
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用的爽呀,这篇文章写与2011年,看来我以前没有认真去找这个方法呀。 https://blog.csdn.net/chzjxgd/article/details/6176325 金蝶K3 BOS的插件官方是用VB6编写的,如果  能用.Net下的语言工具开发BOS插件是一件很愉快的事情,其中缘由不言而喻,而本文则是个人首创,实现在了用V
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选中的单元格进行处理 Dim m As Range, tmpStr As String, s As String Dim x As Integer, y As Integer, subStr As String If MsgBox("确定要分列处理吗?请确定分列的数据会覆盖它后面的单元格!", _
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single) 2 Dim path As String, hash As String 3 For Each fil
  Imports MySql.Data.MySqlClient Public Class Form1 ‘ GLOBAL DECLARATIONS Dim conString As String = "Server=localhost;Database=net2;Uid=root;Pwd=123456;" Dim con As New MySqlConnection
‘導入命名空間 Imports ADODB Imports Microsoft.Office.Interop   Private Sub A1() Dim Sql As String Dim Cnn As New ADODB.Connection Dim Rs As New ADODB.Recordset Dim S As String   S = "Provider=OraOLEDB.Oracl
Imports System.IO Imports System.Threading Imports System.Diagnostics Public Class Form1 Dim A(254) As String    Function ping(ByVal IP As Integer) As String Dim IPAddress As String IPAddress = "10.0.
VB运行EXE程序,并等待其运行结束 参考:https://blog.csdn.net/useway/article/details/5494084 Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Pr
今天碰到一个问题,登陆的时候,如果不需要验证手机号为空,则不去验证手机号 因为登陆的时候所有的验证信息都存放在一个数组里 Dim CheckUserInfo() As String ={UserBirthday, SecEmail, UserMob, UserSex, RealNameFirst, RealName, CheckCardID, CheckCardType, Contactemail
在VB6.0中,数据访问接口有三种: 1、ActiveX数据对象(ADO) 2、远程数据对象(RDO) 3、数据访问对象(DAO) 1.使用ADO(ActiveX Data Objec,ActiveX数据对象)连接SQL Server 1)使用ADO控件连接 使用ADO控件的ConnectionString属性就可以连接SQL Server,该属性包含一个由分号分隔的argument=value语
注:大家如果没有VB6.0的安装文件,可自行百度一下下载,一般文件大小在200M左右的均为完整版的软件,可以使用。   特别提示:安装此软件的时候最好退出360杀毒软件(包括360安全卫士,电脑管家等,如果电脑上有这些软件的话),因为现如今的360杀毒软件直接会对VB6.0软件误报,这样的话就可能会在安装过程中被误报阻止而导致安装失败,或者是安装后缺乏很多必须的组件(其它的杀毒软件或安全卫士之类的
Private Sub Form_Load() Call conndb End Sub Private Function conndb() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim strCn, sql As String Dim db_host As String Dim db_user As String
  PPSM06S70:  Add  moddate  EDITSPRINTJOB:  MAX(TO_CHAR(ETRN.MODDATE, ‘yyyy/mm/dd/HH24:MI AM‘)) ACTUAL_SHIPDATE   4.Test Scenario (1) :Query SQL Test DN:8016578337 SELECT CTRN.TKCTID TRUCK_ID,        
  沒有出現CrystalReportViewer時,須安裝CRforVS_13_0. 新增1個數據集,新增1個數據表,添加二列,列名要和資料庫名一樣. 修改目標Framework 修改app.config, <startup >改成<startup useLegacyV2RuntimeActivationPolicy ="true">  CrystalReport1.rpt增加數據庫專家 在表單
Imports System.Threading Imports System Public Class Form1 Dim th1, th2 As Thread Public Sub Method1() Dim i As Integer For i = 1 To 100 If Me.Label1.BackColor =
Friend Const PROCESS_ALL_ACCESS = &H1F0FFF = 2035711 Friend Const PROCESS_VM_READ = &H10 Friend Const PROCESS_VM_WRITE = &H20 Friend Const PAGE_READONLY = &H2 Friend Const PAGE_READWRITE = &H4 Friend
以下代码随手写的 并没有大量测试 效率也有待提升 如果需要C#的请自行转换 Function SplitBytes(Data As Byte(), Delimiter As Byte()) As List(Of Byte()) Dim i = 0 Dim List As New List(Of Byte()) Dim bytes As New
Imports System.Data.SqlClient Public Class Form1 REM Public conn1 As SqlConnection = New SqlConnection("server=.; Integrated Security=False;Initial Catalog= mydatabase1; User ID= sa;password")