隐式转换警告

Impicit conversion warning

我正在对 VB.NET

中的字符串执行此简单操作

我有一个名为 segmentInfo 的信息字符串,看起来像这样:

XRT0034:3:89:23

所以我只是想从中得到一个数字:

Dim rowNum As Integer = segmentInfo.split(":")(1)

我实际上收到了 2 个警告。两个警告都在同一行代码中给出。

Warning - Implicit conversion from 'String' to 'Integer'
Warning - Implicit conversion from 'String' to 'Char'

也许我能理解第一个,关于 stringinteger...但是第二个??没看懂。

无论如何,有人能告诉我我做错了什么以及如何解决吗?

没有这样的重载方法 String.Split 接受一个 String

类型的参数

来自 MSDN String.Split Method

你可以改成

Dim rowNum As Integer = segmentInfo.split(":"c)(1)

":"c - c 是 Char Type Characters (Visual Basic)

类型的字符

要将 String 转换为 Integer 使用 Int32.TryParseInt32.Parse 方法将字符串转换为整数

Dim rowNum As Int32 = Int32.Parse(segmentInfo.split(":"c)(1))
'Exception will be thrown if string value not convertible to Integer type

或者

Dim rowNum As Int32
If Int32.TryParse(segmentInfo.split(":"c)(1), rowNum) = True Then
    'Use succesfully converted integer value
Else
    'Show message about invalid text
End If

Split 方法将 Char(数组)作为参数,而不是字符串。因此:

.... segmentInfo.split(":"c)(1)

其次,您需要将结果字符串解析为整数:

Dim rowNum As Integer = Integer.Parse(segmentInfo.split(":"c)(1))

仅当您知道字符串是数字时才执行此操作。否则,使用 TryParse.

您必须将其解析为整数形式

Dim rowNum As Integer = Convert.ToInt32(segmentInfo.split(":")(1))
Dim rowNum As Integer = Integer.Parse(segmentInfo.split(":"c)(1))