Я использую C # 8.0 с включенной NullableContextOptions
(Nullable Reference).
У меня есть функция с этой подписью:
public static (int line, string content)? GetNextNonEmptyLineDown(this IList<string> contents, int fromLine)
По сути, она возвращает строку и содержимоеесли есть непустая строка вниз, и возвращает, если ее нет.
Проблема в том, что я не знаю, как ее деконструировать.Если я попытаюсь:
var (firstLineIndex, firstLine) = content.GetNextNonEmptyLineDown(0);
, я получу 4 синтаксические ошибки:
Так что я могу использовать только:
var lineInfo = content.GetNextNonEmptyLineDown(0);
var firstLineIndex = lineInfo.Value.line;
var firstLine = lineInfo.Value.content;
, который разрушает цель.lineInfo
имеет тип struct<T> where T is (int line, string content)
Есть ли способ деконструировать обнуляемый кортеж?
РЕДАКТИРОВАТЬ: после публикации вопроса, мне кажется, что нет смысла разрешать деконструкциюОбнуляемый кортеж как тип данных переменных может быть не определен.Вот мое текущее исправление, но я думаю, что это лучший способ:
var lineInfo = content.GetNextNonEmptyLineDown(0);
if (lineInfo == null)
{
throw new Exception();
}
var (firstLineIndex, firstLine) = lineInfo.Value;