介绍一些编程语言— Visual Basic 语言

news2025/1/19 11:13:19

介绍一些编程语言— Visual Basic 语言

Visual Basic 语言

简介

Visual Basic(简称 VB)是美国 Microsoft 公司于 1991 1991 1991 年研制的一种基于图形用户接口的 Windows 环境下的开发工具,是一种面向对象、可视化的新型开发工具,可在包括 Windows98 和 WindowsNT 在内的所有 Windows 环境下运行。
  
Visual Basic 利用其事件驱动的编程机制和新颖易用的可视化设计工具,并使用 Windows 内部应用程序接口函数,采用动态链接库、动态数据交换、对象的链接与嵌入以及开放式数据库访问等技术,可以高效、快速地创建出 Windows 环境下功能强大并且具有图形界面丰富的应用软件系统。
  
Visual Basic 中提供开放式数据库访问功能,可通过直接访问或建立连接的方式使用并操作外部数据库。Visual Basic 系统本身提供了非常好的数据管理功能,利用数据管理器,用户可以直接创建 Access 数据库,还可以直接编辑和访问其他外部数据库,如 FoxPro、dBASE 和 FoxBASE 等。通过窗口设计器,可以创建数据访问窗体。
  
在表格的处理方面,Visual Basic 捆绑了 Crystal report,基本上可以满足表格处理所需的功能。Visual Basic 既适合于应用软件的开发,也可用于开发系统软件。

产生背景

1991 1991 1991 4 4 4 月,微软公司推出了 Visual Basic 1.0 Windows 版本,这个连接编程语言和用户界面的进步被称为 Tripod,最初的设计是由阿兰·库珀完成的。在当时,它是第一个“可视”的编程软件。

而后多年,Visual Basic 经过多次发展,其发展历程展示在“Visual Basic 发展简史”表中。

2020 2020 2020 3 3 3 11 11 11 日,微软宣布不会再开发 VB 或增加功能。

语言特色

可视化的设计平台

在使用传统的程序设计语言编程时,一般需要通过编写程序来设计应用程序的界面,在设计过程中看不见界面的实际效果。而在 Visual Basic 6.0 中,采用面向对象程序设计方法,把程序和数据封装起来作为一个对象,每个对象都是可视的。开发人员在界面设计时,可以直接用 Visual Basic 6.0 的工具箱在屏幕上"画"出窗口、菜单、命令按键等不同类型的对象,并为每个对象设置属性。开发人员要做的仅仅是对要完成事件过程的对象进行编写代码,因而程序设计的效率可大大提高。

事件驱动的编程机制

面向过程的程序是由一个主程序和若干个子程序及函数组成的。程序运行时总是先从主程序开始,由主程序调用子程序和函数,开发人员在编程时必须事先确定整个程序的执行顺序。而 Visual Basic 6.0 事件驱动的编程是针对用户触发某个对象的相关事件进行编码,每个事件都可以驱动一段程序的运行。开发人员只要编写响应用户动作的代码。这样的应用程序代码精简,比较容易编写与维护。

结构化的程序设计语言

Visual Basic 6.0 具有丰富的数据类型和众多的内部函数。其采用模块化和结构化程序设计语言,结构清晰,语法简单,容易学习。

强大的数据库功能

Visual Basic 6.0 利用数据控件可以访问 Access、FoxPro 等多种数据库系统,也可以访问 Excel、Lotus 等多种电子表格。

ActiveX技术

ActiveX发展了原有的OLE技术,使开发人员摆脱了特定语言的束缚,方便地使用其他应用程序提供的功能,使 Visual Basic 6.0 能够开发集声音、图像、动画、字处理、电子表格、Web等对象于一体的应用程序。

网络功能

Visual Basic 6.0 提供的 DHTML 设计工具可以使开发者动态地创建和编辑 Web 页面,使用户能开发出多功能的网络应用软件。

语言特点

基本特点

VB 的中心思想就是要便于程序员使用,无论是新手或者专家。VB 使用了可以简单建立应用程序的 GUI 系统,但是又可以开发相当复杂的程序。VB 的程序是一种基于窗体的可视化组件安排的联合,并且增加代码来指定组件的属性和方法。因为默认的属性和方法已经有一部分定义在了组件内,所以程序员不用写多少代码就可以完成一个简单的程序。过去的版本里面 VB 程序的性能问题一直被放在了桌面上,但是随着计算机速度的飞速增加,关于性能的争论已经越来越少。

窗体控件的增加和改变可以用拖放技术实现。一个排列满控件的工具箱用来显示可用控件。每个控件都有自己的属性和事件。默认的属性值会在控件创建的时候提供,但是程序员也可以进行更改。很多的属性值可以在运行时候随着用户的动作和修改进行改动,这样就形成了一个动态的程序。举个例子来说:窗体的大小改变事件中加入了可以改变控件位置的代码,在运行时候每当用户更改窗口大小,控件也会随之改变位置。在文本框中的文字改变事件中加入相应的代码,程序就能够在文字输入的时候自动翻译或者阻止某些字符的输入。

VB 的程序可以包含一个或多个窗体,或者是一个主窗体和多个子窗体,类似于操作系统的样子。有很少功能的对话框窗口(比如没有最大化和最小化按钮的窗体)可以用来提供弹出功能。

VB 的组件既可以拥有用户界面,也可以没有。这样一来服务器端程序就可以处理增加的模块。

VB 使用参数计算的方法来进行垃圾收集,这个方法中包含有大量的对象,提供基本的面向对象支持。因为越来越多组件的出现,程序员可以选用自己需要的扩展库。和有些语言不一样,VB 对大小写不敏感,但是能自动转换关键词到标准的大小写状态,以及强制使得符号表入口的实体的变量名称遵循书写规则。默认情况下字符串的比较是对大小写敏感的,但是可以关闭这个功能。

VB 使得大量的外界控件有了自己的生存空间。大量的第三方控件针对 VB 提供。VB 也提供了建立、使用和重用这些控件的方法,但是由于语言问题,从一个应用程序创建另外一个并不简单。

语言缺点

不支持继承

VB 5.0 和 VB 6.0 都是基于对象的编程语言,但是不包含继承特性。VB 中提供了特殊的类的功能,但是还是不能满足程序员的需求。

无原生支持多线程

Visual Basic 对于多线程无原生支持,只能通过 Windows API 的调用实现,且极其的不稳定。因为在 API 创建的线程中,并没有自动初始化运行时库,导致部分的函数无法使用。一般的,在 VB6 等早期的 VB 开发环境下,使用 API 创建线程的目的是完成容易使程序假死的大量数据或者逻辑的计算。

异常处理不完善

Visual Basic 中内置异常处理,即使未写异常处理代码,一旦用户出错也会弹出一个明确写出出错原因对话框,接着程序终止。

Visual Basic 中可以使用 Err.Raise 抛出异常。对系统及用户抛出的异常的处理常用两种模式:一是使用 On Error Resume Next 处理错误;另一种是使用 On Error Goto 将运行引入错误处理代码。但相对 C++ 等语言而言,这样的异常处理破坏了代码的结构。

简单程序

输出 Hello,World!

Module Hello    
  Sub Main()               
    MsgBox("Hello,World!") 
  End Sub                  
End Module                 

A + B problem

Imports System
Module APlusB
    Sub Main()
        Dim ins As String() = Console.ReadLine().Split(New Char(){" "c})
        Console.WriteLine(Int(ins(0))+Int(ins(1)))
    End Sub
End Module

参考

  • https://baike.baidu.com/item/Visual%20Basic/287852?fr=ge_ala

  • https://learn.microsoft.com/zh-cn/dotnet/visual-basic/

  • https://baike.esnai.com/view.aspx?w=VisualBasic

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/884407.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32 CubeMX (Freertos任务:创建、删除、挂起、恢复)

STM32 CubeMX Freertos STM32 CubeMX (Freertos任务:创建、删除、挂起、恢复) STM32 CubeMX Freertos前言一、STM32 CubeMX 配置时钟树配置使能串口,用于用于检查实验现象使用STM32 CubeMX 库,配置Freertos创建任务 二…

antd中Switch组件的使用

<Switch> 是 Ant Design 中的一个组件&#xff0c;用于在开关之间切换。checkedChildren 是 <Switch> 组件的一个属性&#xff0c;用于指定在开关打开时显示的文本或 React 元素。 以下是 <Switch> 组件的基本语法&#xff1a; import { Switch } from ant…

【Vue-Router】路由过渡动效

在 Vue Router 中&#xff0c;你可以通过过渡动效&#xff08;Transition Effects&#xff09;为路由切换添加平滑的过渡效果&#xff0c;从而提升用户体验。过渡动效可以使用 Vue 的 <transition> 组件和 CSS 过渡来实现。 基本使用&#xff1a; 对导航使用动画&#…

【愚公系列】华为云系列之基于ModelBox搭建的AI寻车系统

文章目录 前言一、ModelBox简介1.ModelBox是什么2.AI开发遇到的问题和解决方案一2.1 相关问题2.2 解决方案 3.AI开发遇到的问题和解决方案二3.1 相关问题3.2 解决方案 4.ModelBox的功能5.ModelBox的其他特性6.ModelBox的应用场景 二、ModelBox搭建的AI寻车系统1.案例效果2.环境…

『虫无涯赠书01期』|〖测试设计思想〗

『虫无涯赠书01期』&#xff5c;〖测试设计思想〗 &#x1f498; 赠书 - 《测试设计思想》&#x1f9e1; 内容简介&#x1f49b; 作者简介&#x1f496; 本书内容&#x1f497; 读后感想&#x1f49d; 参与方式 &#x1f498; 赠书 - 《测试设计思想》 购书传送门&#xff1a;测…

应用 - 行为分析篇

前言 以商超项目为例&#xff0c;为了更好的给用户提供服务&#xff0c;我们需要了解到用户喜欢什么&#xff0c;我的产品中哪些是用户感兴趣的&#xff0c;哪些是不感兴趣的。我应该在推荐栏目中给用户推荐的内容是哪些。 基于这些业务场景&#xff0c;我们需要一套行为分析…

STL转GLTF【在线工具】

3DConvert 是一个可以进行3D模型格式转换的在线工具&#xff0c;支持多种3D模型格式进行在线预览和互相转换。 1、STL与GLTF格式简介 STL&#xff08;Stereo Lithography&#xff09;文件是一种用于3D打印的文件格式。它是由3D Systems公司开发的一种二进制文件格式&#xff0…

创意转写,文字催生:介绍有用的录音实时转写功能

我有一个朋友叫小敏&#xff0c;是一名记者。她在采访工作中常常遇到一个难题&#xff1a;采访过程中非常容易错过重要信息&#xff0c;到底要用哪款手机录音实时转写软件才能解决这个问题&#xff1f;于是有一天&#xff0c;她听说了一款神奇的录音转文字软件&#xff0c;决定…

84. 柱状图中最大的矩形(单调栈)

题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 解题思路&#xff1a; 方法一&#xff1a;暴力解法 矩形的面积由宽和高决定&#xff0c;可以枚举所有的高度&#xff0c;也就是固定高度&#xff0c;然后从当前高度所在的位置向…

创新方案|超越炒作 – 从产品驱动增长PLG到产品驱动销售PLS的务实策略指南

这篇文章探讨从产品驱动增长到产品驱动销售的策略&#xff0c;超越了产品驱动增长的炒作。尽管产品驱动增长模式被认为是科技公司的灵丹妙药&#xff0c;但要取得成功&#xff0c;通常需要结合更传统的企业模式的要素。研究表明&#xff0c;只有少数采用产品驱动增长模式的公司…

生信豆芽菜-ESTIMATE预测免疫评分

网址&#xff1a;http://www.sxdyc.com/immuneEstimateScore 一、ESTIMATE预测免疫评分介绍 ESTIMATE&#xff08;Estimation of STromal and Immune cells in MAlignant Tumor tissues using Expression data&#xff09;是一种用于预测肿瘤免疫评分的计算方法。它通过分析基因…

LC-相交链表(解法2)

LC-相交链表&#xff08;解法2&#xff09; 链接&#xff1a;https://leetcode.cn/problems/intersection-of-two-linked-lists/description/ 描述&#xff1a;给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在…

生态系统NPP及碳源、碳汇模拟教程

详情点击链接&#xff1a;生态系统NPP及碳源、碳汇模拟教程 一&#xff1a;CASA模型 1.1 碳循环模型 1.2 CASA模型原理 1.3 CASA下载与安装 1.4 CASA注意事项 二&#xff1a;CASA初步操作 2.1 ENVI界面 2.2 ENVI 数据及格式 2.3 基于ENVI的CASA模拟 2.4 CASA结果分析 …

第一张Web及基础与HTTP协议

dns与域名&#xff1a; 网络是基于tcp/ip协议进行通信以及链接 应用层——传输层——网络层——数据链路层——物理层 ip地址&#xff0c;我们每一台主机&#xff0c;都有唯一的地址标识&#xff08;固定的ip地址&#xff09; ip地址的作用&#xff1a; 1&#xff0c;区分用…

一阶RC低通滤波器[原理详细推导]

注意这里面的截止频率 因为前面的推导中的复阻抗里面多了一个f 这里的的函数是: 其中: f为输入信号的频率,f_B为滤波器的截止频率。 该函数的相位角φ&#xff0c;&#xff08;为其argument的反余弦值&#xff09;: 将函数带入有: Re(H(f)) Im(H(f)) 相位角φ为: φ…

重组金黄色葡萄球菌蛋白A(Recombinant Staphylococcal Protein A, r-SPA)——一种基因工程重组蛋白

品 名&#xff1a;重组金黄色葡萄球菌蛋白A&#xff08;Recombinant Staphylococcal Protein A, r-SPA&#xff09;规 格&#xff1a;1 mg&#xff0c;10 mg&#xff0c;100 mg&#xff0c;500 mg&#xff0c;特殊订制产品形式&#xff1a;冷冻干粉&#xff1b;冻干前缓冲…

ATFX汇市:澳洲联储公布会议纪要,美元指数重归103上方

环球汇市行情摘要—— 昨日&#xff0c;美元指数上涨0.29%&#xff0c;收盘在103.17点&#xff0c; 欧元贬值0.37%&#xff0c;收盘价1.0907点&#xff1b; 日元贬值0.41%&#xff0c;收盘价145.55点&#xff1b; 英镑贬值0.06%&#xff0c;收盘价1.2687点&#xff1b; 瑞…

软考高项-思维导图34-36(计算机高级系统项目管理师)

陆续更新一些软考高项的思维导图&#xff0c;都是一些必背知识点&#xff0c;希望可以帮助大家早日考过高项&#xff0c;早日当上高工&#xff0c;早日成为杭州E类人才。全部完整导图快速获取链接&#xff1a;计算机高级系统项目管理师-思维导图汇总 三十四、需求按层次分 三十…

ReBel 论文学习笔记

论文&#xff1a;《Combining Deep Reinforcement Learning and Search for Imperfect-Information Games》 地址&#xff1a;https://arxiv.org/abs/2007.13544v2 代码&#xff1a;https://github.com/facebookresearch/rebel 材料&#xff1a; BV1gt4y1k77C&#xff08;1小时…

LC-链表的中间节点(递归)

LC-链表的中间节点&#xff08;递归&#xff09; 链接&#xff1a;https://leetcode.cn/problems/middle-of-the-linked-list/description/ 描述&#xff1a;给你单链表的头结点 head &#xff0c;请你找出并返回链表的中间结点。 如果有两个中间结点&#xff0c;则返回第二个…