Преобразование функций VbScript (Right, Len, IsNumeric, CInt) в C # - PullRequest
0 голосов
/ 13 октября 2011

Опять же, у меня есть код ниже в VbScript, не могли бы вы предложить, какой будет эквивалентный код в C #.

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  

Пожалуйста, предложите !!

Ответы [ 4 ]

1 голос
/ 13 октября 2011

Попробуйте:

if (NavigationId.StartsWith("S"))
{
    NavigationId = NavigationId.Substring(1);
    int id;
    if (int.TryParse(NavigationId,out id))
    {
        if (id > 0)
        {
        }
    }
}
0 голосов
/ 13 октября 2011

Вы, вероятно, должны поставить else s на if s и throw некоторые exception s

string navigationIdString = GetNavID(oPage.Title)

if (navigationIdString.StartWith("S"))
{
    var navigationID = 0;
    if (int.TryParse(navigationIdString.SubString(1), navigationID)
    {
         if(navigationID > 0)
         {
             ...
         } 
    }
}
0 голосов
/ 13 октября 2011
if (NavigationId.StartsWith("S"))
{
    NavigationId = NavigationId.TrimStart("S");
    int temp = 0;
    if (int.TryParse(NavigationId, out temp))
    {
        if (temp > 0)
        {
            //Do something
        }     
    } 
}
0 голосов
/ 13 октября 2011
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.
    }
}

Однако вы должны посмотреть на работу со строками на обоих языках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...