编程中的变量命名与运算符使用
发布时间: 2025-08-17 00:31:26 阅读量: 1 订阅数: 6 

### 编程中的变量命名与运算符使用
#### 1. 委托与变量命名约定
委托对于许多程序员而言可能比较令人困惑,但多花些精力去理解它是值得的。委托能让你像操作数据一样操作子程序和函数,为编程增添新的维度。
在变量命名方面,很多开发团队会采用命名约定,使代码更具一致性和可读性。不同团队有各自的约定,其实选择哪种约定并非关键,重要的是保持编码风格的一致性。
常见的简单命名约定如下:
- 对于具有例程作用域的变量,使用小写字母加下划线的形式,如`lowercase_letters_with_underscores`。
- 对于具有模块和全局作用域的变量,使用混合大小写字母,如`MixedCaseLetters`。
- 对于任何作用域的常量,使用全大写字母,如`ALL_CAPS`。
示例代码,定义一个模块作用域的`PictureBox`变量:
```vbnet
Private Canvas As PictureBox
```
例程名通常采用混合大小写形式。
有些开发者会进一步添加类型前缀缩写到控件名,例如声明一个`PictureBox`变量:
```vbnet
Dim picCanvas As PictureBox
```
还有些开发者会添加作用域前缀(`m`表示模块,`g`表示全局),甚至给非控件变量(如`iNumEmployees`表示整数)和子程序名(如`gstrGetWebmasterName`表示返回字符串的全局函数)添加类型前缀。不过,由于Visual Studio的IntelliSense功能强大,将鼠标悬停在变量上就能显示其数据类型,所以这些复杂的前缀如今已不如以往常用。
无论采用何种约定,名称中最重要的部分是描述性部分。像`mblnDL`这样的名称,只能表明它是模块作用域的布尔值,但无法说明其具体含义,而`DataIsLoaded`则更具描述性。
在命名时,不必担心缺少变量前缀会影响项目,真正需要注意的是避免变量名的描述性部分造成混淆。花点时间思考一个好的、有意义的名称是很有必要的。
构建一个涵盖所有可能的数据类型、控件、对象、数据库组件、菜单、常量和例程名缩写的全面命名约定,既耗时又没必要。可以参考微软咨询服务使用的约定,相关文章可访问[这里](http://support.microsoft.com/kb/110264),它详细解释了包括数据类型缩写、函数名首部分包含动词(如`GetUserName`而非`UserName`)以及注释约定等内容。虽然文章写于2003年,使用习惯会随时间变化,但它能为你定义自己的命名约定提供一个起点。
命名和编码约定有助于其他程序员阅读你的代码。你可以查看微软咨询服务的约定,或在网上搜索其他约定,选择你认为最合理的部分,忽略其他部分。编写一致的代码比遵循特定规则更为重要。
#### 2. 变量声明的关键要素
变量声明时,有两个重要方面需要控制:数据类型和可见性。可见性包含作用域(如`For`循环、子程序或模块等包含变量的代码段)、可访问性(由`Private`、`Public`和`Friend`等关键字决定允许访问变量的代码)和生命周期(变量创建到销毁的时间段)。
为避免混淆,应尽可能明确声明数据类型,并根据变量用途使用最有限的作用域。开启`Option Explicit`和`Option Strict`,让IDE在潜在的作用域和类型错误成为问题之前帮你发现它们。
使用LINQ的代码会使情况变得复杂一些。使用LINQ时,通常无法明确声明每个变量的数据类型。LINQ查询可能返回具有匿名类型的对象序列,若对该序列进行枚举,循环变量将是相同的匿名类型。在无法明确声明变量类型的情况下,要格外小心,使代码易于理解,以便后续进行修复和维护。
参数、属性过程和常量也存在类似的数据类型和作用域问题。一旦熟悉了变量声明,这些问题应该不会造成太大困扰。
让代码更易于调试和维护的重要步骤之一是保持代码的一致性,良好的命名约定能起到帮助作用。回顾微软咨询服务的指南,采用对你最有意义的部分。
#### 3. 运算符概述
运算符是对一个或多个值进行操作以产生结果的基本代码元素,被操作的值称为操作数。例如:
```vbnet
A = B + C
```
在这个语句中,运算符是`+`(加法),操作数是`B`和`C`,结果赋值给变量`A`。
Visual Basic运算符分为五类:算术运算符、连接运算符、比较运算符、逻辑运算符和位运算符。下面将详细介绍这些运算符。
#### 4. 算术运算符
Visual Basic提供的算术运算符如下表所示:
| 运算符 | 用途 | 示例 | 结果 |
| --- | --- | --- | --- |
| `^` | 指数运算 | `2 ^ 3` | `(2 to the power 3) = 2 * 2 * 2 = 8` |
| `-` | 取反 | `-2` | `-2` |
| `*` | 乘法 | `2 * 3` | `6` |
| `/` | 除法 | `3 / 2` | `1.5` |
| `\` | 整数除法 | `17 \ 5` | `3` |
| `Mod` | 取模 | `17 Mod 5` | `2` |
| `+` | 加法 | `2 + 3` | `5` |
| `-` | 减法 | `3 - 2` | `1` |
| `<<` | 左移 | `10110111 << 1` | `01101110` |
| `>>` | 右移 | `10110111 >> 1` | `01011011` |
其中,`\`运算符执行整数除法,返回第一个操作数除以第二个操作数的结果,舍去余数,结果是向零截断而非四舍五入。例如,`7 \ 4 = 1`,`–7 \ 4 = –1`。
`Mod`运算符返回第一个操作数除以第二个操作数的余数,如`17 Mod 5 = 2`,因为`17 = 3 * 5 + 2`。
`<<`运算符将整数值的位向左移动,右边空出的位用零填充。例如,二进制值`10110111`左移1位得到`01101110`,左移2位得到`11011100`。
`>>`运算符将值的位向右移动,左边空出的位用零填充。例如,二进制值`10110111`右移1位得到`01011011`,右移2位得到`00101101`。
需要注意的是,Visual Basic处理位值不太方便,不能在代码中直接使用二进制值,如`10110111`,需写成十六进制值`&HB7`或十进制值`183`。表中最后两项以二进制形式展示,便于理解移位操作。
#### 5. 连接运算符
Visual Basic提供了两个连接运算符:`+`和`&`,它们都用于连接两个字符串。由于`+`符号也代表算术运算符,为使代码更易读,建议使用`&`符号进行字符串连接。使用`&`还能让Visual Basic明确操作数是字符串,使代码运行更快,减少问题。
#### 6. 比较运算符
比较运算符用于比较两个值,并根据比较结果返回布尔值(`True`或`False`)。Visual Basic提供的比较运算符如下表所示:
| 运算符 | 用途 | 示例 | 结果 |
| --- | --- | --- | --- |
| `=` | 等于 | `A = B` | 若`A`等于`B`,则为`True` |
| `<>` | 不等于 | `A <> B` | 若`A`不等于`B`,则为`True` |
| `<` | 小于 | `A < B` | 若`A`小于`B`,则为`True` |
| `<=` | 小于或等于 | `A <= B` | 若`A`小于或等于`B`,则为`True` |
| `>` | 大于 | `A > B` | 若`A`大于`B`,则为`True` |
| `>=` | 大于或等于 | `A
0
0
相关推荐









