You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB6中Open For、Put语句里的#号有何作用?是否源自更早VB版本?

VB6文件操作语句中#号的作用与来源

实际作用

这个#是VB文件操作语法里专门用来标记文件号的前缀,本身不产生任何额外的运行逻辑,作用就是明确告诉编译器:后面跟的整数是通过FreeFile()申请到的已打开文件的通道编号,不是别的普通变量或者常量。

VB6里所有原生文件操作语句——不管是Open、Put、Get、Close,还是读写文本用的Print #、Input #——这个#号都是可加可不加的,运行效果完全没区别。你看到的示例里Open和Put带了#、Close没带,纯粹是写代码的人习惯不统一,完全不影响代码正常运行。

比如下面两种写法执行结果100%一致:

' 全部带#的写法
Dim fnum As Integer
fnum = FreeFile()
Open "myFile.txt" For Binary As #fnum
Put #fnum, 1, CA
Close #fnum

' 全部不带#的写法
Dim fnum As Integer
fnum = FreeFile()
Open "myFile.txt" For Binary As fnum
Put fnum, 1, CA
Close fnum

语法溯源

这个写法确实是VB6之前就有的历史遗留规则,最早来自DOS时代的BASIC方言:GW-BASIC、QBasic、QuickBASIC这些VB的前身语言里,文件操作语句中引用文件号是强制要求加#的,不加就会报语法错误。

后来微软做Visual Basic的时候,为了兼容几十年积累下来的海量老BASIC代码,从VB1到VB6都保留了#的写法,同时放宽了语法限制允许省略#,慢慢就形成了现在加不加都能跑、不同人写出来的代码风格混杂的情况。


内容的提问来源于stack exchange,提问作者tmighty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 01:15:29