2016-11-30 89 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字符串函數阻止你。