关于VB中Trim函数的一点疑问

chill_ming 2019-08-03 04:58:19
在VB中使用Trim函数,出现了一点小疑问

下面的代码会发生异常:
if "" <> 12 then
xxxxx
end if

但是使用trim函数之后,就不会有异常,能正常进入到xxxxx逻辑
if trim("") <> 12 then
xxxxx
end if

是什么原理?Trim之后就可以和数字比较了呢?

同样的代码,在VB.NET环境下运行就会发生异常

请教各位前辈
...全文
326 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
chill_ming 2019-08-13
  • 打赏
  • 举报
回复
引用 1 楼 milaoshu1020的回复:
"" 应该是String类型的;
Trim("")应该是Variant/String类型的;

"" <> 12 是字符串和数字作比较,所以类型不匹配;
Trim("") <> 12 Trim("")的返回值是Variant类型的变量,我认为它在比较的过程中会自从转换为数字,相当于:
Val(Trim("")) <> 12 或者 Val("") <> 12,而 Val("") = 0,所以比较操作可以正确执行;

但是在VBS脚本中,Trim("") <> 12 仍会报错: 类型不匹配;
这说明这块VB编译器和VBS编译器的处理方式是不一样的;
应当尽量避免不同类型的值或者变量进行比较和赋值等操作;
感谢您回复。。。。。
milaoshu1020 2019-08-03
  • 打赏
  • 举报
回复
"" 应该是String类型的;
Trim("")应该是Variant/String类型的;

"" <> 12 是字符串和数字作比较,所以类型不匹配;
Trim("") <> 12 Trim("")的返回值是Variant类型的变量,我认为它在比较的过程中会自从转换为数字,相当于:
Val(Trim("")) <> 12 或者 Val("") <> 12,而 Val("") = 0,所以比较操作可以正确执行;

但是在VBS脚本中,Trim("") <> 12 仍会报错: 类型不匹配;
这说明这块VB编译器和VBS编译器的处理方式是不一样的;
应当尽量避免不同类型的值或者变量进行比较和赋值等操作;

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧