VB.NET 2010运行RDLC静默打印代码提示'$'字符无效报错求助
问题原因
- 你遇到的
Character is not valid '$'报错,核心原因是VB.NET 2010对应的VB语言版本为VB 10,不支持字符串插值语法,你复制的代码里用到了$"xxxx{变量}xxxx"这种VB 14(VS2015及以后版本)才支持的写法,编译器识别不了开头的$字符就会抛出该错误。
解决方法
把代码里所有带$前缀的插值字符串,替换为VB 2010支持的String.Format写法即可,举个转换示例:
原代码里的插值写法:
Dim reportPath As String = $"{Application.StartupPath}\Reports\MyReport.rdlc"
替换为VB2010兼容写法:Dim reportPath As String = String.Format("{0}\Reports\MyReport.rdlc", Application.StartupPath)
- 替换规则:把
$符号删掉,把原来字符串里用{}包裹的变量按出现顺序,依次替换为{0}、{1}、{2}……,最后在字符串后面加逗号,按顺序填入对应的变量名即可。 - 替换完成后重新编译项目,就能解决批量$字符无效的报错。
额外注意事项
- 如果你复制的代码里还有其他VB10不支持的语法,比如空值传播运算符
?.、nameof运算符等,也需要对应替换为兼容写法,本次报错只和$插值语法有关。
内容的提问来源于stack exchange,提问作者Kris
相关产品推荐
相关产品推荐

