2016-11-30 87 views
3

我想获得一个VB.NET应用程序来编译。除了“elephant in the room”,我也越来越7“‘微调’未声明”像这样的代码中的错误:为什么我没有用这个VB.NET代码声明'修剪'?

enter image description here

...还有一个“‘IsNothing’不是由于其保护级别,可能无法访问。“在这条线上:

If IsNothing(memberList) = False Then 

我不知道VB,所以可能有一个简单的解决方案,但我不知道问题是什么。

+3

为什么不使用NET版本的修剪?那是字符串类的一部分? addr.Trim() – Steve

+3

您可能没有包含'Microsoft.VisualBasic'命名空间。情况可能是这样,因为它也扼杀了“没有什么”。酷的孩子使用NET对应 – Plutonix

回答

3

裁剪功能需要来自组件的Visual Basic运行时库(在Microsoft.VisualBasic.dll中)

一般优选的是,从字符串类使用本地修剪方法来参考Microsoft.VisualBasic程序而不是添加到该程序集的引用(主要用于帮助移植旧VB6应用程序)

mail.CC.Add(addr.Trim()) 

还要注意的是string.Trim删除其他空白字符作为标签,而Microsoft.VisualBasic程序功能不。

+0

酷;摆脱那六个错误;我仍然拥有“IsNothing”和旧的“Object Ref”之一。但是,这回答了我的问题,所以我会尽快将其标记为答案(8分钟/ 1:50 PST)。 –

+1

'IsNothing' ==>'Is Nothing'(不是函数)@ B.ClayShannon – Plutonix

+0

当我用空格分隔它们时,它确实阻止了早期的err味精,但它带来了两个新味道: 非法调用表达式或索引表达。 - 和:“预计表达式” –

0

String.Trim不带字符串参数。它返回一个新的字符串,其中当前String对象的一组指定字符的所有前导和尾随出现都被删除。

它应该是...

1

你在这个MSDN article

使用addr.Trim代替Trim(addr)

了解更多关于Trim你应该使用

If not memberList Is Nothing Then 

相反的

If IsNothing(memberList) = False Then 

或者

你必须导入Microsoft.VisualBasic命名空间

1

如果使用Left()Mid()Right()字符串函数您可能会发现更容易地转换那些太:

Left(t, l)变成t.Substring(0, l)

Mid(t, s, l)成为t.Substring(s-1, l)

Right(t, l)成为t.Substring(t.Length - l)

通常LeftRight是性能和使用旧的VB字符串函数阻止你。