2015-04-21 1 views
1

Я использую одну функцию VB в свой класс бизнес-объектов MVC.Как использовать vbKeySpace в C#?

Пример кода в VB,

intUBound = Len(astrInValue); 
For intLoop = 1 To intUBound 
    strChar = Mid$(astrInValue, intLoop, 1) 
    intCharASCII = Asc(strChar) 

    If intCharASCII = vbKeySpace Then 
     strEncodedStr = strEncodedStr & "+" 
    Else 
     strEncodedStr = strEncodedStr & strChar 
    End If 
Next intLoop 

C# код, как,

intUBound = Strings.Len(astrInValue); 
for (intLoop = 1; intLoop==intUBound; intLoop+=1) 
{ 
    strChar = Strings.Mid(astrInValue, intLoop, 1); 
    intCharASCII = Strings.Asc(strChar); 

    if(intCharASCII == vbKeySpace) 
    { 
     strEncodedStr = strEncodedStr + "+"; 
    } 
    else 
    { 
     strEncodedStr = strEncodedStr + strChar; 
    } 
} 

Здесь, как использовать vbKeySpace в C#?

+0

Не перевести код с одного языка, как это. Вместо этого перепишите его. Не используйте 'Strings.Len'' Strings.Mid' и т. Д. В C#, вы будете разрушать день разработчиков C#, выполнив это. Итак, поймите, что делает этот код, и просто напишите логику в C#. –

+1

Поскольку все, что вы делаете в любой версии кода, заменяет символы пробела плюсом «+», почему вы не просто используете функцию «Заменить»? C#: 'astrInValue.Replace (" "," + ")' – jac

ответ

1

vbKeySpace - это просто постоянное целочисленное значение, и вы можете просто ввести 32 вместо vbKeySpace.

if(intCharASCII == 32) 
    { 
    strEncodedStr = strEncodedStr + "+"; 
    } 

Но, как указано в комментариях, рекомендуется избегать перевода устаревшего кода, подобного этому.

Источник: https://msdn.microsoft.com/en-us/library/aa243025%28v=vs.60%29.aspx

Смежные вопросы