网站首页 > 文章中心 > 其它

vb.net类与结构

作者:小编 更新时间:2023-08-14 13:26:14 浏览量:446人看过

在VB.NET中,什么是类?什么是对象?它们之间的关系是什么?

人类是一个类,你是人,我是人,都是人类的实例(instance),或称对象(object).一个类描述一类事物,描述这些事物所应具有的属性,如人有身长、体重、文化程度、性别、年龄、民族等.

人类只有一个,人类的实例可以有无数个.

对象可以被创建和销毁,但类是无所不在的.

例如,桌子是一个类, 人们不断打造各种尺寸和风格(属性)的桌子(桌子的实例),打造桌子, 又不断毁坏桌子,年复一年,旧的去了,新的又来,但桌子的概念没变,它是一个抽象的概念.应该称它为桌子类,以区别于打造的具体桌子.

vb和vb.net的区别

①1 什么是 VB.NET? Microsoft推出全新的编程和操作系统Framework——.NET,支持多种语言利用公共.NET库开发应用程序,这些应用程序在.NET Framework上运行.使用Visual Basic在.NET Framework上编程,这就是VB.NET.

首先,让我演示在VB.NET中写最简单的控制台程序:Hello World.

vb.net类与结构-图1

代码 1.1: Hello VB.NET World例子Imports System

Module Module1

Sub Main()

System.Console.WriteLine("Hello VB.NET World!")

End Sub

vb.net类与结构-图2

End Module

vbc HelloWorld.vb /out:HelloWorld.exe /t:exe

编译结束后,HelloWorld.exe被创建到当前目录下.在资源管理其中双击图标或在命令行执行,程序正确地运行了.祝贺你进入VB.NET开发者的行列.

Imports 语句

如你所知,大部分的.NET类型都在名字空间(namespace)中定义.Namespace是定义和管理类别的范畴.察看.NET Framework Class Library,可以看到数以百计的namespace.例如,System namespace就包括了Console、Object等类型定义.如果想使用Console类,需要用Imports指令导入System namespace.如下所示:

Imports System甚至可以明确地调用namespace而无需用Import导入.下面的例子展示了不用Import的"Hello World!"程序:

Imports System; System namespace定义了Console类,该类用于读写控制台(命令行窗口).然后你定义了一个module:Module Module1

...End Module所有的VB程序都包括一个Main()方法,即应用程序入口点.在例子程序中,我们调用Console.WriteLine()向控制台写入"Hello VB.NET World!":

Console.WriteLine("Hello VB.NET World!") End SubWriteLine()方法归属于Console类,它负责向控制台写一个带有行结束符的字符串.如前所述,Console类定义于System namespace,你通过直接引用来控制类成员.

Console类负责读写系统控制台.读控制台输入用Read和ReadLine方法,向控制台输出用WriteLine方法.

表1.1 Console类定义的方法

方法 用途 例子

Read 读入单个字符 int i = Console.Read();

ReadLine 读入一行 string str = Console.ReadLine();

Write 写一行 Console.Write("Write: 1");

WriteLine 写一行,并带上行结束符

Console.WriteLine("Test Output Data with Line");

下面是VB.NET的特性列表——

一个namespace是类和组件的逻辑组合,其目的在于将.NET class按类别定义.微软借用了C++ class packaging概念:namespace来描述这种组合..NET Framework中的组件被称为集合(assembly).全部.NET代码在数百个库文件(DLL)中定义.Namespace把assembly中定义的类组织起来.一个namespace可以包括多个assembly,一个assembly也可以在多个namespace中定义. namespace树的根节点是System namespace.在.NET Library中,每个class都在一组相似的类别中定义.例如,System.Data namespace只包括数据相关类.同样,System.Multithreading只包括多线程类.

在使用.NET支持的语言(如C#、VB.NET、C++.NET等)创建新应用程序时,你会注意到每个应用程序都被定义为一个namespace,而所有的class都归属于这个namespace.通过引用这个namespace,其它应用程序就能存取这些class. 在.NET中,代码被编译为中间语言(Intermediate Language,IL),assembly中存储了IL代码、元数据和其它资源文件.同一个assembly可以附属于一个或多个Exe/DLL.所有的.NET库都存储在assembly中.

Class 和 ModuleVB.NET用Class...End Class语句对创建class.每个VB.NET至少包括一个Module(模块).Module在Module...End Module语句对中实现.应用程序的主要模块是Main方法,亦即应用程序入口点.

Dim cls As TestClass = New TestClass

Console.WriteLine(cls.MyMethod)

Class TestClass

Function MyMethod() As String

Return "Test Method"

End Function

End Class

End ModuleProperty属性(Property)是类变量的公共描述.Property...End Property语句用以创建property.属性的Get/Set方法分别用于取得和设置属性值.下面的例子中,Data是TestClass的属性.

Imports System

Imports System.Console

WriteLine(cls.MyMethod)

WriteLine(cls.Data)

cls.Data = "New Data"

Private strData As String = "Some Data"

Return "Test Method!"

' Adding Data property to the class

Public Property Data() As String

Get

Return strData

End Get

Set(ByVal Value As String)

strData = Value

End Set

End Property

重载VB.NET通过overload关键字支持方法重载.使用这个关键字,你可以定义同名但不同参数的方法.

类成员访问域

除了原有的Private和Public,VB.NET引入了几个新关键字.全部访问域关键字列表如下:

关键字 作用域

Private 限于class内部

Public 可以从class外访问

Friend 限于class所属的应用程序内

Protected 只能被class和其派生类访问

Protected Friend 能被class、应用程序和派生类访问

继承继承是面向对象编程语言中最常用的技术.继承让你能够重用类代码和功能.

Dim bObj As B = New B

WriteLine(bObj.MethodA())

' Class A defined

Public Class A

Function MethodA() As String

Return "Method A is called."

'Class B, inherited from Class A. All members (Public and Protected)

' can be access via B now.

Public Class B

Inherits A

Function MethodB() As String

Return "Method B is called."

可以从一个class中派生多个自定义class,也可以从多个class派生一个自定义class.

共享的成员类的共享成员被类的所有实体共享.共享成员可能是属性、方法或字段/值域.在你不想让用户全面控制自己的类时,共享成员相当有用.例如,你可以开发一个类库,让用户通过共享成员使用其中的部分功能.

可以通过class本身引用共享成员,而无需通过类的实体.例如:Module Module1

WriteLine(A.MethodA())

Shared Function MethodA() As String

多线程VB语言的一大弱点就是缺乏编写自由线程(free-threaded)程序的能力.在.NET Framework中,所有语言共享CRL(Common Runtime Library,公共运行库),也就是说,你可以用VB.NET、C#或其它.NET语言编写同样的程序.

System.Threading namespace定义了线程类.我们只需要引入System.Threading namespace,即可使用线程类.

System.Threading.Thread类提供线程对象,可以使用Thread类创建或破坏线程.

创建线程使用Thread类的实体创建一个新线程,然后用Thread.Start方法开始执行线程.线程构造器接受一个参数,该参数指明你要在线程中执行的procedure.在下例中,我想在oThread1(Thread类的一个实体)的第二线程中执行SecondThread过程:

oThread1 = New Thread(AddressOf SecondThread)

SecondThread procedure looks like below:

Public Sub SecondThread()

Dim i As Integer

vb.net类与结构-图3

For i = 1 To 10

Console.WriteLine(i.ToString())

Next

然后,调用Thread.Start()开始线程:

oThread1.Start()

下面的代码创建两个第二线程:

Imports System.Threading

Public oThread1 As Thread

Public Sub ThirdThread()

Console.WriteLine("A" + i.ToString())

破坏线程 调用Abort方法来破坏(中止)一个线程.在调用Abort之前,确保用IsAlive判断线程处于活动状态.

If oThread1.IsAlive Then

oThread1.Abort()

End If

暂停线程可以使用Sleep方法来暂停线程执行.Sleep方法接受一个以毫秒为单位的参数,指明线程应当暂停多长时间.

下面的例子让线程暂停1秒钟:

设定线程优先级Thread类的Priority属性用于设定线程优先级.该属性可以设置为Normal,AboveNormal,BelowNormal,Highest和Lowest.如:

oThread.ApartmentState = ApartmentState.MTAMTS意味着可以使用多线程模式,而STA则只能是单线程执行.

Public Enum ApartmentState

{

STA = 0,

MTA = 1,

}

' 可能导致异常的代码

Catch

' 当异常发生时处理异常的代码

Finally

' 清理现场

End Try

Try语句块用以抛出异常.如果异常发生,在Catch语句块中处理.Finally语句块是可选的,在需要释放资源时特别有用.

数据类型(Data Type)的改变VB.NET中有些数据类型得到改进.下面是变化对照表.

Currency 用于存储大浮点数 被decimal替代,支持更高精度

Variant 可以存储任意类型数据 被Object类型替代,也可以存储任意类型数据,但结果更好

Date Date类型被存储为double 引入DateTime类型,用于存储不同格式的日期

Dim i As Integer = New Integer()i = 10System.Console.WriteLine(i.ToString()) 代码块级别支持.像C++一样,VB.NET支持代码块级别的作用域检查.在语句块中声明的变量只在块内有效.

改进了的类型安全

VB.NET不支持Any关键字.你必须指定每个参数和返回值的数据类型.数组VB.NET对数组作了明显的改动.

这里的ArrWeekDays数组是固定长度的,不能用ReDim语句改变长度.VB.NET不支持固定长度数组,所以ReDim总是有效.

算术操作符VB.NET支持类似C++的快捷方式.下面的表格显示了常规操作与快捷操作的不同之处.快捷方式也可用于*、/、|、等操作符.

Type StdRec

StdId As Integer

StdName As String End Type

VB.NET引入新的语法:Structure.Type...End Type不再被支持.Structure...End Structure与C++用法相同.可以指定结构中每个元素的可访问域,如Public、Protected、Friend、Protected Friend、Private等.例如:

Structure StdRec

Public StdId As Integer Public StdName As String

VB.Net中结构和类的区别

不可能,你的过程一定是在类里的.

.net

平台的语言,无论是

vb.net

还是

c#,都是强面向对象的语言(或者说完全面向对象),也就是至少需要存在一个对象才可以,显然一个单独的方法不能称为一个对象,必须包含在一个类里.

比如你编写窗体程序,那么就会有

class

form1、class

这种类.要是控制台程序就会有

module1、class

这种类.更别提自定义的各种类了.

所以不可能编出一个不包含任何类、并且通过

vs

的编译的程序.

VB.NET中,类到底是什么意思,它存在的用途是什么

类,是面向对象思想的一个产物.它的用途,就在于把事物高度抽象.比如说游戏中的粉丝,你可以定义一个粉丝类,这个类,有自己的属性和方法,粉丝的生命值,等级,金钱,等等等等,它可以有自己的方法,比如,可以跳跃,可以死亡.类,本身并不能存在于内存之中,这就解释了对象的问题.类,实例化以后,对象诞生,真实的存在于内存之中.你把一个粉丝类实例化100次,诞生100个粉丝在游戏中.这个关系,你可以简单的这么理解.

vb和vb.net的区别和特点

①.、vb.net ?完全符合面向对象的编程语言抽象、封装、继承的四大特性,而vb不支持继承.

vb中只是On Error.....goto和On Errer Resume Next ,这些错误称为非结构化异常处理.而在vb.net中采用的结构化异常处理机制,try...catch....finally控制.

vb.net 允许创建不同类型的应用程序,例如,创建ASP.NET和ASP.NET Web 服务应用程序,还允许创建控制台应用程序和作为桌面服务运行的应用程序.但是vb 只能创建Windows窗体.

扩展资料

Visual Basic(简称VB)是Microsoft公司开发的一种通用的基于对象的程序设计语言,为结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言.是一种可用于微软自家产品开发的语言.

"Visual" 指的是开发图形用户界面 (GUI) 的方法——不需编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象add到屏幕上的一点即可.

"Basic"指的是 BASIC (Beginners All-Purpose Symbolic Instruction Code) 语言,是一种在计算技术发展历史上应用得最为广泛的语言.

Visual Basic源自于BASIC编程语言.VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建Active?X控件,用于高效生成类型安全和面向对象的应用程序 .

参考资料:百度百科-Visual Basic

VB.NET 里 结构(Structure)和类(Class)有什么区别?如题 谢谢了

以上就是土嘎嘎小编为大家整理的vb.net类与结构相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章