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

Свойство Position

Stream.Position можно читать и писать, если CanSeek равен true. После Read и Write позиция сдвигается. Альтернатива - Seek с SeekOrigin.

Синтаксис

long pos = stream.Position; stream.Position = 0;

Пример

Давайте сбросим позицию в ноль перед чтением:

using System; using System.IO; class Program { static void Main() { using var ms = new MemoryStream(); ms.Write([1, 2, 3, 4, 5], 0, 5); ms.Position = 0; byte[] buf = new byte[1]; ms.Read(buf, 0, 1); long res = ms.Position; Console.WriteLine(res); } }

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

1

Пример

Давайте перепрыгнем на байт 4 через запись Position:

using System; using System.IO; class Program { static void Main() { using var ms = new MemoryStream(); ms.Write([1, 2, 3, 4, 5], 0, 5); ms.Position = 3; byte[] buf = new byte[1]; ms.Read(buf, 0, 1); int res = buf[0]; Console.WriteLine(res); } }

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

4

Пример

Давайте сравним Position с Length после записи:

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 res = ms.Position == ms.Length; Console.WriteLine(res); } }

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

True

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

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