Я пытаюсь использовать Null-условный оператор (?
), но я не совсем уверен, где именно положить его separators.Contains(textLine[(index - 1)])
. Я хочу сказать: «Если (textLine[(index - 1)])
не является нулевым». Некоторая помощь?C# Null-условный оператор
ответ
Если вы имеете в виду, чтобы не вызвать содержит метод, если значение в вашем массиве равно нулю, тогда вы должны сначала проверить его.
// requires possible bounds checking
char? test = textLine?[index-1];
if (test != null && separaters.Contains(test.Value))
Использование LINQ:
// does not require bounds checking
char test = textLine?.Skip(index-1).FirstOrDefault() ?? default(char);
if (test != default(char) && separaters.Contains(test))
прежде всего char никогда не может быть пустым. Вы хотели написать 'textLine? [index-1];' вместо этого? –
да, это то, что я понял сейчас @ M.kazemAkhgary – user7388546
Правильно, я был неуверен, если он имел в виду, что textLine был бы нулевым, или значение в массиве могло бы быть нулевым –
Второй пример MSDN Docs должен ответить на ваш вопрос:
Customer first = customers?[0]; // null if customers is null
Это не так Null-conditional Operators работы.
Null-условные операторы, возвращает только null вместо исключения, если один из родителей отмечен префиксом? является == NULL
Пример:
var g1 = parent?.child?.child?.child;
if (g1 != null) // TODO
Что вам нужно, это простой IF условие
if (!string.IsNullOrEmpty(textLine))
{
// Work here
}
- 1. Оператор C++ + и оператор + = перегрузка
- 2. Оператор перегружает оператор «+» в C++
- 3. C# тройной оператор Оператор списка
- 4. C#? : Оператор
- 5. C++ оператор ''
- 6. C++ оператор ":"
- 7. C# '+ =' Оператор
- 8. C# 'оператор'
- 9. : оператор в c/C++
- 10. Оператор в C/C++
- 11. Colon оператор в C/C++
- 12. Оператор строкой в C/C++
- 13. C/C++, отрицанием оператор разочарование
- 14. C# Неявный оператор преобразования и оператор/as
- 15. C++ переопределить оператор <() и оператор =()
- 16. Используя точечный оператор вместо оператор -> C++
- 17. Null-коалесцирующий оператор и оператор && в C#
- 18. Условный оператор и оператор присваивания в C
- 19. И оператор внутри Оператор while в C++
- 20. странный оператор C++ (оператор unsigned short())
- 21. Оператор C++ предшествование и оператор возврата
- 22. явный оператор + в C++
- 23. Оператор перегрузки C++ [] []
- 24. Оператор присваивания строк C++
- 25. C++ оператор присваивания решения
- 26. шаблона оператор литого C++
- 27. оператор возврата в C++
- 28. Оператор = неоднозначный (C++)
- 29. C++ новый оператор
- 30. Оператор переопределения C#
ли вы имеете в виду "если выражение не равно нулю, называют содержит метод, в противном случае не"? –
.............. да – user7388546
И как должна ваша программа действовать в другом случае? –