Описание тега system.memory

1 ответ

Должны ли структуры readonly быть неизменными в массиве?

(Примечание. Для этого примера кода требуется C# 7.2 или более поздняя версия и пакет Nuget System.Memory.) Давайте предположим, что у нас есть readonly struct следующее: public readonly struct Test { public Test(int value) { Value = value; } public…
12 дек '17 в 15:06
1 ответ

Правильный способ получить изменяемую структуру для памяти<byte> / Span<byte>?

Для реализации сетевого протокола я хочу использовать новый Memory а также Span классы для достижения нулевой копии буфера при доступе к данным через struct, У меня есть следующий надуманный пример: [StructLayout(LayoutKind.Sequential, Pack = 1)] pu…
26 май '18 в 20:34
3 ответа

Span<T> не требует назначения локальной переменной. Это особенность?

Я заметил, что следующее будет компилироваться и выполняться, даже если локальные переменные не инициализированы. Это особенность Span? void Uninitialized() { Span&lt;char&gt; s1; var l1 = s1.Length; Span&lt;char&gt; s2; UninitializedOut(out s2); va…
04 апр '18 в 14:05
1 ответ

Структурировать в его представление ReadOnlyMemory<byte>

У меня есть следующая структура: [StructLayout(LayoutKind.Sequential)] struct Message { int Header; int Data; } и я хочу отправить его по проводам, без выделения ресурсов (используя SendAsync(ReadOnlyMemory&lt;byte&gt;)) вызов. Как я могу получить M…
15 окт '18 в 22:02
4 ответа

В чем разница между Span<T> и Memory<T> в C# 7.2?

C# 7.2 вводит два новых типа: Span&lt;T&gt; а также Memory&lt;T&gt; которые имеют лучшую производительность по сравнению с более ранними типами C#, такими как string[], Вопрос: в чем разница между Span&lt;T&gt; а также Memory&lt;T&gt;? Зачем мне исп…
16 ноя '17 в 04:34
1 ответ

Реализация подстроки через Span<T>

Как бы реализация SubstringFromStart метод выглядит как когда Span&lt;T&gt; следует использовать? Если предположить, substringLength &lt;= input.Length: ReadOnlySpan&lt;char&gt; span = input.AsSpan().Slice(0, substringLength); return new string(span…
06 фев '18 в 13:52
1 ответ

Работа с escape-последовательностями с помощью ReadOnlySpan<char>

ReadOnlySpan&lt;char&gt; Говорят, что он идеально подходит для разбора, поэтому я попытался его использовать и наткнулся на случай использования, с которым я не знаю, как обращаться. У меня есть командная строка string где префикс аргумента - и разд…
15 июл '18 в 07:47
1 ответ

Действие<Span <byte >> выдает ошибку компиляции, но делегат void TestMeDelegate(данные Span<byte>) не делает

Изучите следующий код. class Program { delegate void TestMeDelegate(Span&lt;byte&gt; data); static void Main(string[] args) { TestMeDelegate testMeDelegate = TestMe; Action&lt;Span&lt;byte&gt;&gt; testMeAction = TestMe; } static void TestMe(Span&lt;…
14 сен '18 в 11:22
1 ответ

Span<T> не может быть вложенной локальной переменной. Почему это ограничение?

Следующее не компилируется. Поскольку это не анонимный метод, лямбда-выражение или выражение запроса, почему это ограничение? (Передача текста как ref ReadOnlySpan отлично работает.) void TestNestedSpan() { var text = "Some text".AsReadOnlySpan(); v…
04 апр '18 в 14:51
1 ответ

Span<T> и друзья не работают в приложении.NET Native UWP

Действия по воспроизведению: Откройте Visual Studio 2017 с последним обновлением. Создайте целевой объект проекта UWP в 10240 (это не обязательно, оно сломано во всех сборках) устанавливать System.Memory из пакетов nuget (нажмите включить пререлиз) …
18 апр '18 в 12:41
1 ответ

Где я могу найти документацию по System.Memory?

Где я могу найти реальные документы для таких вещей, как Span и Memory?
02 авг '18 в 18:57
6 ответов

Span и двумерные массивы

Можно ли использовать новую структуру Span System.Memory с двумерными массивами данных? double[,] testMulti = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 9.5f, 10, 11 }, { 12, 13, 14.3f, 15 } }; double[] testArray = { 1, 2, 3, 4 }; string testString = "H…
1 ответ

Какие общие операции можно сделать более эффективными с помощью Span<T>?

Допустим, у меня есть веб-приложение, и я хочу использовать новое Span&lt;T&gt; типа, чтобы уменьшить давление ГХ и улучшить производительность. Какие образцы я должен высматривать? Были ли какие-либо типичные операции, которые команда.NET имела в в…
16 ноя '17 в 12:42
1 ответ

Использование Span<T> в качестве замены для подстроки

Я прочитал несколько статей о том, как Span можно использовать для замены определенных строковых операций. Поэтому я обновил некоторый код в моей кодовой базе, чтобы использовать эту новую функцию, однако, чтобы иметь возможность использовать ее на …
01 янв '19 в 18:28
1 ответ

Ошибка сборки Xamarin.Forms + Xamarin.ios Entityframework Core 2.1.1

Я работаю над приложением Xamarin.ios с Microsoft.EntityframeworkCore.Sqlite версии 2.1.1 с Xamarin.forms .NetStandard 2.0. Я не могу собрать приложение на iPhone, получаю следующую ошибку: MTOUCH: ошибка MT3001: не удалось AOT сборки 'имя_проекта /…
1 ответ

Альтернатива использованию Func для возврата Span<T> или другой ссылочной структуры

Как можно передать в качестве параметра метод, который возвращает Span? using System.Memory; public Span&lt;byte&gt; CallSpanFactory1(Func&lt;Span&lt;byte&gt;&gt; spanFactory) { return spanFactory(); } Этот код возвращает ошибку "тип" Span "не может…
05 мар '18 в 21:57
0 ответов

Почему MemoryMarshal.Cast работает для Span<T>, но не для Memory<T>?

Кто-нибудь может объяснить, почему MemoryMarshal.Cast определяется для Span&lt;T&gt; но не для Memory&lt;T&gt;? Оба они по сути являются указателями на смежную память; поэтому я не могу понять, почему бросок Span безопаснее, чем приведение в Memory.…
13 май '19 в 09:56
1 ответ

Span - доступ к исходному значению

Я хочу получить исходное значение, которое представляет Span. Возьмите следующий код, например, как бы я, в DoWorkполучить доступ к оригинальному массиву байтов, не создавая его копию? static void Main() { var data = new byte[0x100]; DoWork(new Span…
13 мар '19 в 16:11
0 ответов

Разбор (ReadOnlySpan<char>) для примитивных типов в.NET Framework

Кто-нибудь знает о каких-либо планах по реализации перегрузок примитивных типов на основе span в платформе.NET? Я ищу функциональность, которая в настоящее время существует в.NET Core, то есть оптимизированный анализ минимального выделения кучи для …
02 июл '19 в 15:25
0 ответов

Почему класс BuffersExtensions не может копироваться в память?

Класс BuffersExtensions в C# предоставляет метод, который копирует последовательность только для чтения в Span: CopyTo (ReadOnlySequence, Span) Но он не предоставляет метод, который копирует в память. Есть ли причина для этого?
30 авг '19 в 18:37