错误95重载决策失败,因为没有缩小转换就无法调用可访问的“新建”?

时间:2011-11-09 05:51:57

标签: vb.net

我在我的vb.net解决方案中有这个代码,为什么我会在标题中得到错误?

  Dim ids As New System.Collections.Generic.List(Of [String])(comma_seperatedstring.Split(","c))

2 个答案:

答案 0 :(得分:1)

看起来你要做的就是将逗号分隔的字符串拆分成ID并将它们存储在字符串类型的通用列表中 - 如果是这种情况,我不知道你可以初始化的方法这样的清单。

这样的事情应该有效:

Dim ids As New List(Of String)()

Dim individualIds As String() = comma_separatedstring.Split(",")

For Each id As String in individualIds

    ids.Add(id)
Next

语法可能有些偏差(我不经常做VB.NET),但基本思路是将逗号分离的字符串拆分成数组,然后循环遍历数组并将每个元素添加到泛型列表。

4.0中有From个关键字,允许您使用以下语法初始化列表:

Dim ids As New List(Of String) From { "a", "b", "c" }

但似乎你必须明确列出元素(换句话说,你不能做From { comma_separatedstring.Split(",") }

有关详细信息,请参阅Collection Initializers Overview (Visual Basic)

答案 1 :(得分:1)

对于我遇到的类似问题,在这行代码中获得“重载解析失败,因为在没有缩小转换的情况下无法访问'Split'”:

Dim sStrings() As String = sArg.Split("=", 2)

“。paul。_”回答了解决问题的答案:http://social.msdn.microsoft.com/Forums/en-US/bd3c446f-46b2-4a60-9d10-6d31f30b6e7d/what-has-changed-in-split-from-previous-to-current-versions-of-net-or-vb

新的工作代码是:

Dim sStrings() As String = sArg.Split(New Char() {"="c}, 2)