Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Александр Шевченко «C# 8: Indices and Ranges»

Александр Шевченко «C# 8: Indices and Ranges»

В докладе рассматриваются новые фичи языка, такие как Indices (Индексы) и Ranges (Интервалы). Как их использовать, во что они компилируются и на что нужно обратить внимание.

DotNetRu

April 18, 2019
Tweet

More Decks by DotNetRu

Other Decks in Programming

Transcript

  1. Что такое Index 2 ^6 ^5 ^4 ^3 ^2 ^1

    ^0 0 1 2 3 4 5 6 На что указывает ^2 ?
  2. Что такое Index 2 ^6 ^5 ^4 ^3 ^2 ^1

    ^0 0 1 2 3 4 5 6 На что указывает ^2 ? На e.
  3. Что такое Index 2 ^6 ^5 ^4 ^3 ^2 ^1

    ^0 0 1 2 3 4 5 6 На что указывает ^2 ? На e.
  4. Что такое Range Range = Start Index + End Index

    3 Start Index End Index 1(^5) 4(^2)
  5. Что такое Range Range = Start Index + End Index

    3 Start Index End Index Входит ли e в интервал? 1(^5) 4(^2)
  6. Что такое Range Range = Start Index + End Index

    3 Start Index End Index Входит ли e в интервал? Нет. 1(^5) 4(^2)
  7. Что такое Range Range = Start Index + End Index

    3 Start Index End Index Входит ли e в интервал? Нет. 1(^5) 4(^2)
  8. Как с этим работать? ◦ Не .Net Framework ◦ Array,

    Span<T>, ReadOnlySpan<T> (+String?) ◦ С Array и String в данный момент аллоцирует память! ◦ Нужно следить за тем, что адресуемые элементы существуют ◦ Помнить про порядок при нумерации с конца 7
  9. Ссылки https://docs.microsoft.com/en-us/dotnet/csharp/whats- new/csharp-8 https://github.com/dotnet/roslyn/issues/23205 - Checklist and open issues for

    C# range (..) operator https://github.com/dotnet/csharplang/blob/master/proposals/cshar p-8.0/ranges.md - official proposal https://www.google.com/search?q=c%23+8+ranges 8