2011-10-13 27 views
-1

再次,我已經得到了VbScript中的代碼,請問您可以在C#中建議什麼是等效代碼。在C#中轉換VbScript函數(右,Len,IsNumeric,CInt)

Function GetNavID(Title) 
    getNavID=UCase(Left(Title, InStr(Title, ". ") -1)) 
End Function 

我已經上面的代碼改變了從我的最後一個問題即

public static string GetNavID(string Title) 
{ 
    int index = Title.IndexOf(". "); 
    return Title.Substring(0, index - 1).ToUpper(); 
} 

現在我想下面的代碼轉換也是在C#中,因爲有很多的VBScript函數,所以感到困惑。

Dim NavigationId 'As String 

NavigationId = GetNavID(oPage.Title) 

' Is it a subnavigation member page ? 
If Left(NavigationId, 1) = "S" Then 
    NavigationId = Right(NavigationId, Len(NavigationId) - 1)   
    If IsNumeric(NavigationId) Then 
     ' Its a subnavigation non-index page "Sxxx" 
     If CInt(NavigationId) > 0 Then 

     End If 
    End If 
End If 

請建議!!

+6

是不是在這裏做你所支付的工作。所以我們嘗試了你。 –

+0

只需要你的專家意見...謝謝,它可以幫助其他VbScript移動到C#人員 –

+2

那麼你將無法做到:C#中的Dim'Id String'因爲C#不會讓你聲明一個變量沒有類型。我建議你從學習你希望轉換代碼的語言的基礎開始。 – Widor

回答

1

嘗試:

if (NavigationId.StartsWith("S")) 
{ 
    NavigationId = NavigationId.Substring(1); 
    int id; 
    if (int.TryParse(NavigationId,out id)) 
    { 
     if (id > 0) 
     { 
     } 
    } 
} 
0
If Left(NavigationId, 1) = "S" Then 
    NavigationId = Right(NavigationId, Len(NavigationId) - 1)   
    If IsNumeric(NavigationId) Then 
     ' Its a subnavigation non-index page "Sxxx" 
     If CInt(NavigationId) > 0 Then 

     End If 
    End If 
End If 

翻譯成:

if(NavigationId.StartsWith("S")) { 
    NavigationId = NavigationId.Substring(1); 
    int navId; 
    if(Int32.TryParse(NavigationId, out navId) && navId > 0) { 
     // Do what you need to do. 
    } 
} 

但是,你應該看看這兩種語言的字符串操作運作。

0
if (NavigationId.StartsWith("S")) 
{ 
    NavigationId = NavigationId.TrimStart("S"); 
    int temp = 0; 
    if (int.TryParse(NavigationId, out temp)) 
    { 
     if (temp > 0) 
     { 
      //Do something 
     }  
    } 
} 
0

你或許應該把一些else S於該if S和throw一些exception小號

string navigationIdString = GetNavID(oPage.Title) 

if (navigationIdString.StartWith("S")) 
{ 
    var navigationID = 0; 
    if (int.TryParse(navigationIdString.SubString(1), navigationID) 
    { 
     if(navigationID > 0) 
     { 
      ... 
     } 
    } 
}