Помогите преобразовать крошечную строку кода 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
массив не был инициализирован.