Из Microsoft TechNet :
Несколько специальных имен файлов зарезервированы системой и не могут использоваться для файлов или папок:
CON , AUX, COM1, COM2, COM3, COM4, LPT1, LPT2, LPT3, PRN, NUL
blockquote>
Если у вас C # 7.3 или новее, вы можете использовать расширение, сделанное для оператора fixed
, которое может использовать любой подходящий метод GetPinnableReference
для типа (который есть у Span
и ReadOnlySpan
):
fixed (byte* bp = bytes) {
...
}
Поскольку мы имеем дело с указателями, это, конечно, требует unsafe
контекста.
C # 7.0 до 7.2 не имеют этого, но допускают следующее:
fixed (byte* bp = &bytes.GetPinnableReference()) {
...
}
Попробуйте это:
Span<byte> bytes = ...;
string s = Encoding.UTF8.GetString((byte*)Unsafe.AsPointer(ref bytes.GetPinnableReference()),
bytes.Length);