Span
- это специальный тип, предназначенный для использования в стеке. Вы не можете поместить его в class
, потому что это может сделать то, на что он ссылается, не изжившим ссылку на кучу. Например, вы можете использовать Span
для ссылки на то, что создано с помощью stackalloc
.
Обычно Span
используется только как локальная переменная для ссылки на часть данных самым абстрактным образом возможный. Существуют случаи, когда имеет смысл хранить их, но во многих из этих случаев Memory
лучше, потому что, хотя это устраняет возможность ссылаться на такие вещи, как stackalloc
, вы, вероятно, не захотите эту способность, если храните вещи в классы.
Если вам нужно создать struct
, который содержит Span
, обозначьте его public ref struct SpanStruct
, но обратите внимание, что это означает, что его тоже нельзя вставить в class
.