Приведение каждого символа из диапазона против MemoryMarshal.CastC#

Место общения программистов C#
Ответить
Гость
 Приведение каждого символа из диапазона против MemoryMarshal.Cast

Сообщение Гость »


When debugging an operation with UTF8 strings, sometimes I want to see the string representation from a given

Код: Выделить всё

ReadOnlySpan
so i created a static function to help me achieve it, but, one of the ways to do so doesn't worked as spected, i wonder why does the outcoming string is incomprehensible.

Код: Выделить всё

//#define FORCE_NOT_UTF8

using MemoryMarshal = System.Runtime.InteropServices.MemoryMarshal;
using Unsafe = System.Runtime.CompilerServices.Unsafe;
using Encoding = System.Text.Encoding;

static string ForgeString(ReadOnlySpan utf8Runes)
{
Span buffer = utf8Runes.Length > 1024
? new char[utf8Runes.Length]
: stackalloc char[1024]
;
#if FORCE_NOT_UTF8
Encoding.UTF8.GetChars(utf8Runes, buffer);
#else
if (Encoding.Default.BodyName != Encoding.UTF8.BodyName)
{
Encoding.UTF8.GetChars(utf8Runes, buffer);
}
else if(buffer.Length is 

Источник: [url]https://stackoverflow.com/questions/78133343/casting-each-char-from-span-vs-memorymarshal-castbyte-char[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»