-
vb.net教程之变量与常量
<一> 变量的命名规则(相关vb.net教程)
(1)必须以字母开头,由字母、数字和下划线组成。
(2)不得超255个字符。
(3)不能是VB.NET中的关键字
<二> 变量的作用域与声明
根据定义位置和使用的变量定义语句的不同,Visual Basic.NET中的变量可能分为4个级别,即代码块(Block)级变量、过程(Procedure)级变量、模块(Module)级变量及公用(Public)变量,各种变量位于不同的层次。
1、代码块级变量
代码块是一个程序段,它通常指的是一个控制结构,例如If…End…End If、For…Next等。例如,在窗体上画一个按钮,然后编写如下代码:
Private Sub Button1_Click(ByVal sender As System.Object,ByVal e System.EventArgs)Handles Button1.Click
Dim a As Short=100 ‘过程级变量
If a >=100 then
Dim b As Integer ‘代码块级变量
B=a*a
Msgbox(b)
End if
Msgbox(b) ‘此名将出错,回为b是代码块级变量,只在if … End if之间有效。
End Sub
在上面的程序中,变量b是代码块级变量,它的作用域是If…End If之内,如果代码块外引用变量b ,则会出错。
代码块级变量通过Dim语句声明
2、过程级变量
在过程(事件过程或通过过程)内声明的变量称为过程级变量,也称局部变量,可以用Dim或Static声明,其作用域是它所在的过程。过程级变量通常用来存放中间结果或用作临时变量。某一过程的执行只对该过程内的变量产生作用,对其他的过程中相同名字的过程级变量没有任何影响。因此,在不同的过程中定义相同的过程级变量,它们之间没有任何关系。如果需要,则可以通过“过程名.变量名”的形式分别引用不同过程中相同名字的变量。
局部变量在过程内用Dim、Static声明,例如:
Sub Command1_Click()
Dim Tempnum As Integer
Static Total As Double
……
End Sub
在上面的过程中,定义了两个过程级变量,即整型变量Tempnum和又精度静太变量Total。
3、模块级变量
前面我们曾多次提到“模块”。在Visual Basic.NET中,模块通常指的是一个类。窗体是一个类,可以称为窗体模块。为了方便起见,“模块极”对于模块、类的结构是等价的。在模块、类或结构中的过程和代码块之外声明的变量就是模块级变量。
模块级变量可用于该模块内的所有过程。一个窗体模块可以含有若干个过程(事件过程或通过过程),这些过程连同窗体一起存入窗体文件(.vb)中。当同一个窗体内的不同过程使用相同的变量时,必须定义窗体层变量。
在使用模块级变量前,必须声明,也就是说,模块级变量不能隐式声明。在默认情况下,模块级变量对模块中的所有过程都是可见的,模块级变量用Private或Dim声明。例如:
Private intTemp As Integer
或
Dim intTemp As Integer
在声明模块级变量时,Private和Dim没有什么区别,但Private更好些,因为可以把它和声明公用变量的Public区别开来,使代码更容易理解。
4、公用变量
公用变量也称全局变量,其作用域最大,可以在项目的每个模块、每个过程中使用。公用变量在模块中声明使用的关键字是Public,不能用Dim语句声明,更不能用Private语句声明;同时,公用变量只能在模块的声明部分中声明,不能在过程中声明。模块通过“项目”菜单中的“添加模块”命令来建立。
变量的作用域使用表
名称 | 作用域 | 声明位置 | 使用语句 |
代码块级变量 | 代码块 | 代码块内 | Dim |
过程级变量 | 过程 | 过程中 | Dim或Static |
模块级变量 | 模块内 | 类或模块中所有过程之外 | Dim或Private |
公用变量 | 项目内 | 模块中所有过程之外 | Public |
<三> 变量的命名约定
为了提高程序代码的可读情和可持续发展性,一般建议使用以下的命名约定。
1、根据不同的变量类型,系统有规定的后缀符号表示
变量类型 | 后缀 | 例子 |
Integer | % | Number% |
Long | & | ID& |
Decimal | @ | Inmony@ |
Double | # | Pai# |
Single | ! | Color! |
String | $ | Stuname$ |
2、根据不同的变量类型,以前缀的方式变量进行命名
变量类型 | 前缀 | 例子 |
Boolean | Bln | BlnIscorrect |
Byte | Byt | |
Char | Chr | ChrSex |
Data | Dat | DatLasDay |
Decimal | Dec | DecCash |
Double | Dbl | Dblpai |
Integer | Int | IntNumber |
Long | Lng | LngID |
Object | Obj | ObjStudent |
Short | Shr | ShrCol |
Sing | Sng | SngArea |
String | Str | StrName |
栏目列表
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比