2012-01-20 118 views
-3

我有一些vb代碼,如果有人能夠將它轉換爲c#,我會覺得它很有幫助。我真的不知道左邊的功能是幹什麼的?將vb left()函數轉換爲c#

If Left(cboLeng, 1) = "1" And Left(cboLeng, 1) = "2" And Left(cboLeng, 1) = "3" And Left(cboLeng, 1) = "4" And Left(cboLeng, 1) = "5" And Left(cboLeng, 1) = "6" And Left(cboLeng, 1) = "7" And Left(cboLeng, 1) = "8" And Left(cboLeng, 1) = "9" Then 
     Leng = "L" & cboLeng.Text 
    Else 
     Leng = cboLeng.Text 
    End If 
+3

認真嗎?你可以發佈到SO但不能谷歌「VB左」? – adelphus

+1

google:VB留下的功能 - >數百萬的結果 –

+1

但是這個代碼有意義嗎?我不知道VB,但它看起來很像是測試第一個字符是否是同時每個數字,而不是任何數字('char.IsDigit(cboLeng [0])') – harold

回答

4

(目前還不清楚是什麼cboLeng在這裏,順便說一句 - 它看起來像它被用來作爲一個字符串含有Text屬性類型的詳細信息會有所幫助。 。這個答案的其餘部分假定它是一個字符串 - 否則,只需使用Text屬性一次得到的字符串值,並在該操作)

Left功能需要一個初始子 - 但這些代碼沒有按」沒有意義。這有點相當於:

if (cboLeng.StartsWith("1") && cboLen.StartsWith("2") && ...) 
{ 
} 

的字符串不能以「1」 開始以「2」開頭。我的猜測是真的想要像這樣:

// TODO: Check for an empty string 
char firstChar = cboLeng[0]; 
if (firstChar >= '1' && firstChar <= '9') 
{ 
    Leng = "L" + cboLeng; 
} 
else 
{ 
    Leng = cboLeng; 
} 
+0

似乎從提取給定cboLeng是一個控制不是一個字符串... –

+0

擊敗我吧。但它應該是'char firstChar = cboLeng.Text [0];' – Matten

+1

@DavidM:我正在編輯解釋這一點。提供的代碼似乎在各種方式怪異,說實話... –

4

Left取所提供的字符串的最左側字符。 C#中的等效功能由string.Substring提供。所以,你的代碼將開始:

if (cboLeng.Text.Substring(0, 1) == "1"... 
+2

你可以關注鏈接並閱讀文檔嗎?那裏有非常清楚的解釋。 –