codecamp

Visual Basic (VB) 关键字大全

Visual Basic 中,关键字是预定义的保留字集,对编译器具有特殊含义。因此,Visual Basic 中的关键字不能在我们的应用程序中用作变量名、类名等标识符。

1. 什么是关键字

关键字 = 编译器保留的「专用词」,不能用作变量名、过程名、类名。
VB 不区分大小写,因此 If / IF / if 都视为同一个关键字。

Visual Basic 关键字类型

在 Visual Basic 中,关键字分为两种类型,即

  • 保留关键字
  • 未保留关键字

2. 分类速记表

类别 常用关键字(按字母序) 记忆口诀
控制流程 IfThenElseElseIfSelectCaseForNextFor EachWhileEnd WhileDoLoopUntilExitContinueReturnGoTo 如果选循环,退出继续回
异常 TryCatchFinallyThrowWhen 抓住最后抛
声明/作用域 DimConstStaticReadOnlyPrivatePublicFriendProtectedMustInheritNotInheritablePartialShadowsOverloadsOverridesOverridableNotOverridableMustOverrideSharedModuleClassStructureInterfaceEnumNamespaceImportsAliasUsingWithEnd With 公私友护,重载覆盖,共享枚举
运算符 AndAndAlsoOrOrElseNotXorIsIsNotLikeModAddressOfGetTypeTypeOfInLike 与或非模,地址类型
类型/转换 BooleanByteSByteShortUShortIntegerUIntegerLongULongDecimalSingleDoubleDateCharStringObjectCTypeDirectCastTryCastCBoolCByteCIntCLngCDecCSngCDblCDateCCharCStrCObj 基本类型,C 系列转换
参数/返回 SubFunctionPropertyGetSetParamArrayOptionalByValByRefRefInOutYieldAsyncAwaitHandlesAddHandlerRemoveHandlerRaiseEvent 参可空,异步等
内存/资源 NewNothingEraseReDimPreserveMeMyBaseMyClassGlobal 新无重定义,我基类
编译指令 OptionStrictExplicitCompareInferAssemblyModule 放在文件最顶部
LINQ FromWhereSelectOrder ByAsc/DescGroupJoinLetDistinctSkipTakeAggregateIntoOnEquals 查询语法糖
其他 CallCaseDefaultEachElseErrorEventGetTypeGoSubLetLibLoopNameNextOfOperatorRegionRemResumeStepStopThenToUntilWhenWhileWithEventsAddRemoveIteratorPartialAwait 少见或历史兼容

完整官方列表:

https://learn.microsoft.com/zh-cn/dotnet/visual-basic/language-reference/keywords/

3. 实战:关键字冲突怎么办?

场景:想用 Date 做变量名 → 编译报错「关键字冲突」
解决:前后加方括号 [ ] 即可

Dim [Date] As Date = #2025-09-29#   ' 合法
Console.WriteLine([Date])

建议:尽量少用,代码可读性差。

4. 编译器指令关键字(文件级)

放在 最顶部,影响当前文件编译行为:

Option Strict On      ' 禁止隐式缩窄转换
Option Explicit On    ' 强制声明变量
Option Infer On       ' 允许 Dim 推断
Option Compare Text   ' 字符串比较忽略大小写

5. 上下文关键字(只在特定位置才认)

VB.NET 新增「上下文关键字」——不必方括号也能当标识符:
Ascending, Descending, Equals, Group, Join, Let, Order By, Partial, Select, Skip, Take, Value, Xml, Await, Async
示例:变量名与 LINQ 关键字不冲突

Dim Value As Integer = 10      ' 合法
Dim result = From v In New Integer() {1, 2, 3}
             Where v > Value
             Select v

6. 小结口诀

一百十九保留词,大小写无关要牢记;

命名冲突加括号,指令置顶严与宽;

上下文词看位置,可读优先少取巧!

Visual Basic (VB)变量与常量详解
Visual Basic (VB) 注释写法大全(单行/多行/文档注释)
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }