
Visual Basic 2010 基础
介绍Visual Basic 2010所需的各个方面的知识,包括开发环境的配置.Visual Basic语法、使用面向对象特性、处理字符串和正则表达式、构建Windows和Web应用程序、使用对话框和数据库,以及部署应用程序等。
ngbshzhn
数学教师一枚
展开
-
001.NET Framework概述
.NET Framework封装了操作系统,将使用.NET开发的应用程序与操作系统特性隔离开来。这样,为NET开发的应用程序就可以移植到许多不同的硬件和操作系统上。 .NET Framework框架是一个多语言组件开发和执行环境,使开发人员更容易建立.网络应用程序和刚络服务。.NET Framework框架主要包含三个主要部分:公共语言运行时(Common Language Runtime,CLR) .NET Framework类库集合。 用户和程序界面。.NET Frame...原创 2020-05-12 21:02:58 · 368 阅读 · 0 评论 -
002公共语言运行时
公共语言运行时CLR是用于.NET应用程序的执行引擎,它也是.NET最重要的特征之一。公共语言运行时通过公共类型系统(Common Type System、CTS)和公共语言规范(Common Language Specification. CLS)定义了标准数据类型和语言间互操作性的规则.Just-In-Time编辑器在运行应用程序之前把中间语言(Intermediate Language.几)代码转换为可执行代码。CLR还负责管理应用程序,为其分配内存和回收内存。公共类型系统 公共...原创 2020-05-12 21:15:41 · 292 阅读 · 0 评论 -
003 公共语言规范与中间语言
公共语言规范(Common Language Specification,CLS)是由一组结构和限制规则构成的,用做库编写者和编译器编写者的指南。这样任何支持CLS的语言都可以完全使用库,并且使这些语言之间可以相互集成。公共语言规范是公共类型系统的子集。对于那些需要编写代码供其他开发人员使用的应用程序开发人员而言,公共语言规范也非常重要。如果开发人员遵循CLS规则来设计公共访问的API,那么就可以在支持公共语言运行时的任何其他编程语言中很容易地使用这些API。 .NET语言的编译分为两个阶...原创 2020-05-12 21:27:06 · 525 阅读 · 0 评论 -
004 .NET Framework类库
在.NET Framework架构中,在CLR的上层为.NET Framework的类库。.NET提供的强大的类库可以帮助开发人员轻松地构建应用程序。.NET中的类库封装了对Wmdows、网络、文件及多媒体的处理功能,是所有NET语言都必须使用的核心类库。为了便于语言之间进行交互操作,大多数.NET Framework类型都符合CLS,因而可在编译器符合公共语言规范(CLS)的任何编程语言中使用。 可以使用类库中这些具体的类,或者从这些类中派生自己的类。若要使用接口的功能,既可以创建实现接口的类,..原创 2020-05-12 22:30:10 · 463 阅读 · 0 评论 -
005查找数组中的值
Module Module1 Sub Main() 'Find1() Find2() Console.Read() End Sub Private Sub Find1() Dim data() As Integer = {1, 3, 5, 6, 9, 11, 13, 15, 17, 19} Dim i, index As Integer 'index = -1 Fo.原创 2020-05-12 22:55:33 · 112 阅读 · 0 评论 -
006猜数游戏
Module Module1 Sub Main() 'guess1() guess2() Console.ReadLine() End Sub Private Sub guess1() Dim x, y As Integer Dim counter As Integer = 1 Randomize() x = CInt(10 * Rnd() + 1) .原创 2020-05-12 23:14:12 · 121 阅读 · 0 评论 -
007十进制到二进制的转换
Module Module1 Sub Main() 'Dec2Bin1() dec2bin2() Console.ReadLine() End Sub '十进制to二进制 Private Sub Dec2Bin1() Dim dec As Integer Dim bin As String = "" Dim result As Integer Console..原创 2020-05-12 23:22:58 · 366 阅读 · 0 评论 -
007阶乘
Module Module1 Sub Main() factorial() Console.ReadLine() End Sub Private Sub factorial() Dim i, result As Integer i = 1 result = 1 While i <= 5 result *= i i += 1 .原创 2020-05-12 23:26:57 · 110 阅读 · 0 评论 -
008百钱买百鸡
我国古代数学家张丘建在他的《算经》中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?Module Module1 Sub Main() Dim x, y, z As Integer Dim result As String = "" For x = 0 To 20 For y = 0 To 33 z = 100 - x -原创 2020-05-12 23:36:13 · 174 阅读 · 0 评论 -
009面向对象的概念
面向对象的程序设计(Object Oriented Programming,OOP)是相对于结构化程序设计而言的,表示采用面向对象的思想进行软件的编制。面向对象技术追求的是软件系统对现实世界的直接模拟,尽量实现将现实世界中的事物直接映射到软件系统中。 面向对象编程引入了一个新的概念——对象,作为程序代码的整个结构的基础和组成元素。而类就是对象的抽象和概括,类是数据、属性和方法的封装。 现实生活中,每一个相对独立的事物都可以看做一个对象。对象是具有特性和功能的具体事物的抽象,每个对象...原创 2020-05-13 07:52:57 · 168 阅读 · 0 评论 -
010创建类
Module Module1 Public Class Employee '私有字段 Private EmpName As String Private EmpTel As String Private EmpAddr As String Private Postalcode As Integer '构造函数 Public Sub New() Me.EmpName.原创 2020-05-13 14:29:14 · 103 阅读 · 0 评论 -
011事件处理方式一
Module Module1 Class UserLogin '1.声明事件 Public Event Logon(ByVal UserName As String) Sub CheckUser(ByVal user As String) If user.Equals("Admin") Then 'Equals区分大小写 Console.WriteLine("登录成功") .原创 2020-05-13 15:09:13 · 161 阅读 · 0 评论 -
012事件处理方式二
Module Module1 Public Class EventClass '1.声明事件 Public Event ev_event() '2.方法中引发事件 Sub CauseSomeEvent() RaiseEvent ev_event() End Sub End Class Sub Main() Dim obj As New EventClass .原创 2020-05-13 15:32:06 · 138 阅读 · 0 评论 -
013共享字段,方法和事件
Module Module1 Public Class Employee '私有字段 Private EmpName As String Private EmpTel As String Private EmpAddr As String Private Postalcode As Integer '共享字段 Shared InstanceCount As Integer .原创 2020-05-13 15:49:35 · 186 阅读 · 0 评论 -
014继承
在Visual Basic.NET中,类只能单继承,如果实现多继承,必须通过接口。 Module Module1 '基类,父类 Public Class Teacher Private teaName As String Private teaBirthDate As Date Private teaNative As String Public Property Name As String ...原创 2020-05-13 16:33:30 · 101 阅读 · 0 评论 -
015接口的实现
Module Module1 '1.定义接口 Public Interface ICustomer Event UpdateComplete() Property CustomerName As String Sub UpdateCustomerStatus() End Interface Public Class Customer '2.实现接口 Implements ICustomer .原创 2020-05-13 17:37:48 · 99 阅读 · 0 评论 -
016委托给类的共享方法
委托可用于调用其他对象方法的对象,它的功能和C函数指针类似,可以通过一个到过程本身的指针对过程进行调用。委托与其他编程语言中所使用的函数指针相似,因此有时也称为“类型安全的函数指针”。但与函数指针不同的是,Visual Basic委托是基于System.Delegate类的引用类型。委托可以引用共享方法(无需类的特定实例便可调用的方法)和实例方法。 委托的声明与过程的声明类似。例如:Delegate Sub SimpleDelegate(ByVal msg As Str...原创 2020-05-13 19:30:03 · 253 阅读 · 0 评论 -
017委托给类的实例方法
Module Module1 Public Class msgDisplay '1.被委托的方法 Public Sub display(ByVal msg As String) Console.WriteLine(msg) End Sub End Class '2.声明委托 Delegate Sub delegateMessage(ByVal str As String) Sub Main().原创 2020-05-13 19:42:22 · 137 阅读 · 0 评论 -
018用继承实现多态
多态指的是多个类中具有相似功能的不同方法,并且这些方法使用同名称,并且这些方法使用相同的调用方式来调用这些具有不同功能的同名方法。 利用多态性,可以在基类和派生类中使用同样的方法名定义不同的操作,从而实现“一个接口,多种方法”。Imports System.MathModule Module1 Public MustInherit Class baseClass Public MustOverride Function Calculate(ByVal x As Dou..原创 2020-05-13 20:06:33 · 231 阅读 · 0 评论 -
019用接口实现多态
Module Module1 Public Interface Shape Function Calculate(ByVal x As Double, ByVal y As Double) As Double End Interface Public Class RightTriangleClass Implements Shape Public Function Calculate(ByVal x As Double, ByVa.原创 2020-05-14 10:34:31 · 127 阅读 · 0 评论 -
020IComparable接口
IComparable 接口https://docs.microsoft.com/zh-cn/dotnet/api/system.icomparable?view=netcore-3.1定义由值类型或类实现的特定于类型的通用比较方法,旨在对其实例进行排序。 在System.Array类中有一个共享的Sort方法,该方法可以对简单数据类型的数组进行排序。但是,Sort方法不能直接对更加复杂的对象进行排序,因为该方法不知道复杂对象之间如何进行比较。 实现IComparable接口可以使...原创 2020-05-14 11:00:19 · 163 阅读 · 0 评论 -
021IComparer接口
IComparer 接口https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.icomparer?view=netcore-3.1 Visual Basic.NET定义了两个用于排序列表的接口:IComparable和IComparer。这两个接口的作用相同,都用来比较两个对象是否相等。实现IComparer或者IComparable接口,都允许通过调用System.Array类的重载Sort方法来排序数组。 这两...原创 2020-05-14 16:11:13 · 171 阅读 · 0 评论 -
022IEnumerator和IEnumerable接口
集合实现了两个接口:IEnumerator和Ienumerable接口。IEnumerator 接口https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.ienumerator?view=netcore-3.1支持对非泛型集合的简单迭代。属性 Current 获取集合中位于枚举数当前位置的元素。 方法 MoveNext() 将枚举器前移到集合的下一个元素。 ..原创 2020-05-14 17:22:12 · 136 阅读 · 0 评论 -
023String和StringBuilder
System.String是一个专门用于存储字符串的类,并允许对字符串进行多种操作。 Visual Basic还允许使用类似于索引器的语法来提取字符串中指定的字符:Dim message As Srring = "Hello"Dim chr As Char = message(4) ‘return "0"String 类https://docs.microsoft.com/zh-cn/dotnet/api/system.string?view=netcore-3.1属...原创 2020-05-14 20:42:43 · 140 阅读 · 0 评论 -
024初识正则表达式
正则表达式语言是一种专门用于字符串处理的语言。正则表达式语言由两种基本字符类型组成:原义文本字符和转义字符。转义字符使正则表达式具有处理能力。 使用正则表达式,可以对字符串执行许多复杂而高级的操作.区分字符串中所有重复的单词。 把所有单词都转换为标题格式。 把长于3个字符的所有单词都转换为标题格式。 确保句子有正确的大写形式。 区分URL的各个元素。 在.NET Framework中使用正则表达式时,需要使用Regex类。Regex类表示不可变(只读)的正...原创 2020-05-14 22:28:40 · 102 阅读 · 0 评论 -
025转义字符
正则表达式的功能主要取决于模式字符串。原因是模式字符串不仅仅包含纯文本,它还可以包含原义字符和转义序列,其中原义字符用于给出命令的特定字符,而转义字符都是以反斜杠\开头的字符,它们具有特殊的含义。字符转义.NET 中正则表达式支持的字符转义。符号 含义 示例 匹配的示例 ^ 输入文本的文本 ^B B,但只能是文本中的第一个字符 $ 输入文本的结尾 X$ X,但只能是文本中的最后一个字符 . 除了换行字符(\n)以外...原创 2020-05-14 22:51:12 · 496 阅读 · 0 评论 -
026Collections 命名空间
目录Collections 命名空间常用的集合类常用的接口ICollection 接口属性方法IList 接口属性方法Collections 命名空间https://docs.microsoft.com/zh-cn/dotnet/api/system.collections?view=netcore-3.1常用的集合类 ArrayList 使用大小会根据需要动态增加的数组来实现IList接口。该类的工作方式与数组相似。它包含Array...原创 2020-05-15 09:09:08 · 163 阅读 · 0 评论 -
027ArrayList类
目录ArrayList 类构造函数属性方法示例ArrayList 类https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.arraylist?view=netcore-3.1构造函数 ArrayList() 初始化ArrayList类的新实例,该实例为空并且具有默认初始容量。 ArrayList(ICollection) 初始化ArrayList类的...原创 2020-05-15 09:48:55 · 126 阅读 · 0 评论 -
028ArrayList添加元素
有两种方法向ArrayList添加元素:Add和AddRange方法。这两种方法的区别为: Add方法将单个元素添加到列表的尾部。 AddRange方法获取一个实现ICollection接口的集合实例,例如Anay、Queue、Stack等,并将这个集合实例按顺序添加到列表的尾部。 ArrayList接受空引用Nothing作为有效值并且允许有重复的元素。元素ICollection中的顺序在保存到ArrayList后不变。Module Module1 ...原创 2020-05-15 10:02:25 · 1949 阅读 · 0 评论 -
029ArrayList插入元素
插入元素也是向集合中增加元素,与使用Add或AddRange方法添加元素不同的是,插入元素可以指定要插入的位置,而添加只能在集合的尾部按顺序添加。同样,插入元素也有两种方法:Insert方法将单个元素添加到指定的索引位置。 InsertRange从指定的位置开始添加一个实现了ICollection接口的实例。Module Module1 Sub Main() Dim myAL As New ArrayList myAL.Insert(0, "Eve...原创 2020-05-15 13:42:58 · 467 阅读 · 0 评论 -
030ArrayList删除元素
ArrayList提供了三种方法将指定元素从集合中移除,这三种方法是Remove、RemoveAt和RemoveRange。Remove方法接受一个Object类型值的参数,用于移除指定元素值的第一个匹配集合元素。 RemoveAt方法接受一个Integer类型的参数,用于删除指定索引处的集合元素。 RemoveRange方法从集合中移除一定范围的元素。 在连续元素的集合(如列表)中,已删除元素之后的元素会自动移动占据空出的位置,并修改已移动的元素的索引。Module Module1...原创 2020-05-15 13:56:57 · 193 阅读 · 0 评论 -
031ArrayList排序操作
在ArrayList的方法成员中,调用Sort方法可以轻松实现对集合中的元素进行排序。Sort有三种重载方法,声明代码如下所示:Sort() 对整个ArrayList中的元素进行排序。该方法使用Array.Sorrt方法进行排序,也就是QuickSort算法。此实现执行不稳定排序,即如果两元素相等,则其顺序可能不被保留。相反,稳定排序则保留相等元素的顺序。 Sort(IComparer) 使用指定的比较器对整个ArrayList中的元素进行排序。如...原创 2020-05-15 14:50:23 · 190 阅读 · 0 评论 -
032ArrayList查找元素
IndexOf(Object) 搜索指定的Object,并返回整个ArrayList中第一个匹配项的从零开始的索引。 IndexOf(Object, Int32) 搜索指定的Object,并返回ArrayList中从指定索引到最后一个元素的元素范围中第一个匹配项的从零开始索引。 IndexOf(Object, Int32, Int32) 搜索指定的Object,并返回ArrayList中从指定索引开始,并包含指定元素数的元素...原创 2020-05-15 15:35:02 · 3714 阅读 · 0 评论 -
033ArrayList的二分法查找
BinarySearch方法使用二分算法从集合中快速搜索指定的值,并返回找到元素的索引,否则返回-1。BinarySearch(Int32, Int32, Object, IComparer) 使用指定的比较器在已排序ArrayList的某个元素范围中搜索元素,并返回该元素从零开始的索引。 BinarySearch(Object) 使用默认的比较器在整个已排序的ArrayList中搜索元素,并返回该元素从零开始的索引。 Binar...原创 2020-05-15 15:54:50 · 694 阅读 · 0 评论 -
034创建队列Queue
目录Queue 类构造函数属性方法创建队列Queue 类https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.queue?view=netcore-3.1表示对象的先进先出集合。构造函数Queue() 初始化Queue类的新实例,该实例为空,具有默认初始容量并使用默认增长因子。 Queue(ICollection) 初始化Queue类的新实例,该实例...原创 2020-05-15 16:15:08 · 452 阅读 · 0 评论 -
035使用队列Queue
队列与列表的最大区别就是:存取队列中的元素时是按先进先出的原则进行的。因此,队列又称为先进先出(First In First Out)的线性表,简称为FIFO表。 在使用队列时,常用的方法是Enqueue和Dequcue。Enqueue方法将指定的对象添加到队列的尾部。 Dequeue方法用于移除队列中开始的元素,按先进先出(FIFO)的规则,从前向后移除元素。Module Module1 Sub Main() Dim myQueue As New Qu...原创 2020-05-15 16:28:13 · 176 阅读 · 0 评论 -
036使用堆栈Stack
Stack 类https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.stack?view=netcore-3.1构造函数 Stack() 初始化Stack类的新实例,该实例为空并且具有默认初始容量。 Stack(ICollection) 初始化Stack类的新实例,该实例包含从指定集合复制的元素并且具有与所复制的元素数相同的初始容量。 Stack(Int32)...原创 2020-05-16 07:52:21 · 160 阅读 · 0 评论 -
037字典集合类之Hashtable
Hashtable 类https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.hashtable?view=netcore-3.1 Hashtable类是一种键值对的集合,在内部,Hashtable类维护着一个哈希表。内部哈希表为插入到Hashtable的每个键进行哈希编码,在后续的检索操作中,通过哈希编码可以遍历所有元素。这种方法为搜寻操作提供了较佳的性能。 在.NET中,Hashtable类中存储的每个元素都是一...原创 2020-05-16 08:45:21 · 123 阅读 · 0 评论 -
038字典集合类之SortedList
SortedList 类https://docs.microsoft.com/zh-cn/dotnet/api/system.collections.sortedlist?view=netcore-3.1 SortedList对象是可以排序的字典对象。SortedList元素可通过其键来访问,也可以通过其索引来访问。 SortedList在内部维护两个数组以存储列表中的元素,一个数组用于存储键,另一个数组用于存储相关联的值。 SortedList类中的索引顺序是基于排序后的顺序。当添加...原创 2020-05-16 09:09:37 · 176 阅读 · 0 评论 -
039System.Windows.Forms 命名空间中的类
类的类别 详细信息 控件、用户控件和窗体 System.Windows.Forms命名空间中的大多数类都是从Control类派生的,Control类为在Form中显示的所有控件提供基本功能。Form类表示应用程序内的窗口也可以通过从Control类派而创建自己的控件 菜单和工具栏 通过这些类,用户可以创建自定义工具栏和菜单,并使用它们具有实用的外观和行为。可以分别使用ToolStrip、MenuStrip、ContextMenuStrip和StatusStrip创建工具栏、菜单栏、原创 2020-05-16 10:12:49 · 743 阅读 · 0 评论