VB.NET如何像C#一样传参时内联声明Ref/Out变量实现单行写法
VB.NET 单行整数解析实现说明
语法支持结论
VB.NET 从VB 15版本(随Visual Studio 2017发布)开始,原生支持类似C#的内联声明输出参数语法,你之前写的代码抛出编译错误,是因为错误地手动添加了ByRef关键字——VB编译器会自动根据方法签名识别ByRef类型的输出参数,不需要在传参时手动标注。
等价C#逻辑的正确单行写法
直接在参数传递的位置用Dim声明变量即可,写法如下,和你给出的C#代码逻辑完全一致:解析成功返回整数值,解析失败返回默认值0:
Return If(Integer.TryParse(someStr, Dim value As Integer), value, 0)
低版本兼容方案
如果你的开发环境使用的是低于VB15的版本(VS2015及更早版本),无法使用内联声明语法,除了你已经掌握的提前声明变量的多行写法,也可以用以下单行写法实现近似效果:
Return CInt(If(IsNumeric(someStr), someStr, 0))
注意:该兼容写法依赖
IsNumeric的判定规则,和Integer.TryParse的严格整数解析逻辑存在细微差异,例如对带格式符号、类型后缀的字符串处理结果可能不一致,生产环境优先推荐使用标准的TryParse写法。
内容的提问来源于stack exchange,提问作者Ashkan Mobayen Khiabani
相关产品推荐
相关产品推荐

