Здравствуйте, Serginio1, Вы писали:
S>Почему нельзя ввести такие структуры непонятно.
Потому, что очень многое в дотнете и в существующих программах для него завязано на нынешнее устройство строк.
Например, есть такая договорённость, что
fixed (char* ptr = "Hello") вернёт указатель на непрерывный буфер символов, заканчивающийся \0.
Можно, конечно, потребовать от альтернативных строк готовить буфер on-demand, при вызове GetPinnableReference(). Но это повлечёт за собой неожиданные расходы, O(1) операция внезапно становится (в лучшем случае) O(N).
Если хочется альтернативщины, то свои алгоритмы надо определять не в терминах string, а в терминах IReadOnlySequence<char>.
S>А так вон 1С многое хранит в голых byte[] https://infostart.ru/1c/articles/402038/