InfinityJoe Ответов: 0

Помогите преобразовать крошечную строку кода C# в VB ?


Кто-нибудь может помочь мне преобразовать эту крошечную строку кода C в VB ?
этот код был от :
Регулировка яркости экрана для ноутбуков и планшетов[^]

Что я уже пробовал:

Исходный код на языке Си:
//Form1_Shown:
if (Array.FindIndex(arguments, item => item.Contains("%") ) > -1)

//startup_brightness:
string sPercent = arguments[Array.FindIndex(arguments, item => item.Contains("%"))];


И это моя попытка перейти на VB:
//Form1_Shown: 
If Array.FindIndex(arguments, (Function(item) item.Contains("%"))) > -1 Then

//startup_brightness:
Dim sPercent As String = arguments(Array.FindIndex(arguments, Function(item) item.Contains("%")))


И моя попытка просто возвращает ошибку :
System.ArgumentNullException: 'Value cannot be null.'


Любая помощь была бы замечательна! :)

Овации,
Джо

F-ES Sitecore

Проблема заключается в данных\переменных, которые вы используете, а не в коде. Вам нужно использовать отладчик, чтобы узнать, что оценивает значение null.

InfinityJoe

Привет, приятель, спасибо за твой совет, очень ценю его! :)

Овации,
Джо

Dave Kreskowiak

Это не C, это C# код. Вы можете использовать любой из онлайн-инструментов преобразования для преобразования между C# и VB.NET. Просто Google для "Convert C# to VB.NET-чтобы найти их.

InfinityJoe

Привет, приятель, спасибо за ваш совет, очень ценю это!, и да забыл поставить "#" на название в прошлый раз, но на самом деле я уже добавил C# для этого слогана потока в начале, кстати, просто исправьте название сегодня :)

Овации,
Джо

Richard Deeming

Код, с которого вы начинаете, имеет недостатки - он должен кэшировать возвращаемое значение FindIndex, а не вызывать метод дважды.

int index = Array.FindIndex(arguments, item => item.Contains("%"));
if (index >= 0)
{
    string sPercent = arguments[index];
    ...
}


То ArgumentNullException предположил бы, что arguments массив не был инициализирован.

0 Ответов