Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
787 of 1492 menu
◀ ▶

Свойство CanSeek

Stream.CanSeek равен true у MemoryStream и типичного FileStream. У сетевого потока обычно false - там нельзя произвольно вызывать Seek. Точки отсчёта - SeekOrigin.

Синтаксис

bool ok = stream.CanSeek;

Пример

Давайте проверим MemoryStream:

using System; using System.IO; class Program { static void Main() { using var ms = new MemoryStream(); bool res = ms.CanSeek; Console.WriteLine(res); } }

Результат выполнения кода:

True

Пример

Давайте убедимся, что при CanSeek работает Seek:

using System; using System.IO; class Program { static void Main() { using var ms = new MemoryStream(); ms.Write([1, 2, 3, 4, 5], 0, 5); bool can = ms.CanSeek; long pos = can ? ms.Seek(2, SeekOrigin.Begin) : -1; Console.WriteLine(pos); } }

Результат выполнения кода:

2

Пример

Давайте проверим CanSeek у потока только для чтения из буфера:

using System; using System.IO; class Program { static void Main() { byte[] data = [1, 2, 3, 4, 5]; using var ms = new MemoryStream(data, writable: false); bool res = ms.CanSeek; Console.WriteLine(res); } }

Результат выполнения кода:

True

Смотрите также

  • метод Seek,
    который нужен при CanSeek
  • свойство Position,
    которое меняют при поддержке поиска
  • SeekOrigin,
    откуда считают смещение
  • Stream,
    класс, где объявлено CanSeek
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить