2013-11-26 66 views
3

我開始編寫和學習VB.NET。到目前爲止,這是一帆風順的。無法將字符串轉換爲類型'Double'

直到我嘗試運行程序。

我所做的是以一種我認識和理解的語言寫出了一個hang子手遊戲。而在C#中,代碼完美工作。一旦我達到了這個完成點,我可以說沒有什麼我想改變它的,我開始將它轉換爲VB.NET。

到目前爲止,沒有問題。但我剛剛完成轉換,現在我已經打了我的絆腳石。

在窗口的底部是一個狀態欄,告訴你你在哪個謎題集以及你在哪個謎題中。當選擇一個謎,這行代碼拋出一個錯誤:

stsPuzzles.Text = "Puzzle: " + regionPuzzles + "/" + maxPuzzles 

的錯誤是:

Conversion from string "Puzzle" to type 'Double' is not valid. 

當然,簡單的答案是採取這種技工了,但至少對測試目的,我想在那裏,所以我可以確保正確的謎題是在正確的集合。

有沒有一種方法可以解決這個問題,讓我的兩個整數變量可以在字符串中?還是有一種解決方法,我至少可以使用足夠長的時間用於測試過程的其餘部分的測試目的?

我希望找到一種解決方法,因爲還有其他地方需要能夠做到這一點,比如顯示統計數據。

回答

7

對現有代碼的直接修復是這樣的:

stsPuzzles.Text = "Puzzle: " + CStr(regionPuzzles) + "/" + CStr(maxPuzzles) 

或本:

stsPuzzles.Text = "Puzzle: " & regionPuzzles & "/" & maxPuzzles 

在VB.Net,&,而不是+,是連接運算符。 +通常仍然有效,但當操作數是數字時,它也傾向於認爲你想算術。

但是我會真正做到在這種情況下,是這樣的:

stsPuzzles.Text = String.Format("Puzzle: {0}/{1}", regionPuzzles, maxPuzzles) 

或與Visual Studio 2015年或更高版本:

stsPuzzles.Text = $"Puzzle: {regionPuzzles}/{maxPuzzles}" 
+0

問題解決了!謝謝。我已經使用了一個代碼轉換器來開始,並且它已經將它們留爲'+',所以我認爲它是正確的。當我開始時,我可能應該查閱教程或其他內容。 – Kendra

+7

@Kendra如果你還沒有這樣做,那麼你應該開啓'Option Strict On'。特別是如果你來自C#背景。 –

+0

VB中的首選字符串連接運算符是&not +(對不起 - 在發佈之前沒有看到上面的同樣的東西。) – rheitzman

相關問題