
.NET ako pretypovať string na byte array?
Dajú sa v .NETe managed typy pretypovávať medzi sebou? Napr string na byte[]? Lebo zatiaľ som nenašiel spôsob ako sa na hodnotu nejakého managed typu pozeráť ako na hodnotu iného managed typu.
Viem si ukázať na string, vytvoriť byteArray a naň ukázať tiež a cez Span<T> ich skopčiť do byte array:
(
let mojString = "Ľavá pŕhľava onakvejšô žriebä"
use strPtr = fixed mojString
let stringSpan = new Span<char>(strPtr |> NativePtr.toVoidPtr, mojString.Length)
let bytes = Array.zeroCreate<byte>(mojString.Length * 2) // UTF16 - 1 char su 2 bytes
use bytesPtr = fixed bytes
let byteSpan = new Span<char>(bytesPtr |> NativePtr.toVoidPtr, mojString.Length)
stringSpan.CopyTo(byteSpan)
printfn "Bytes %A" bytes
)
leže práve to je ten problém že musím kopírovať. nedalo by sa to nejako obísť? aby som sa na jednu hodnotu dokázal pozerať cez 2 rôzne typy?