Как избежать копирования структуры, когда это поле в другой readonly ref struct
У меня есть несколько методов расширения Check<T>
определено ниже. Они могут быть связаны вместе, и некоторые из них могут создавать новые экземпляры Check<T>
(потому что он сам по себе неизменен, но _Success
флаг (и другие флаги, не показанные ниже), возможно, потребуется изменить).
public readonly ref struct Check<T> {
public readonly T Value;
readonly bool _Success;
public Check(in T value, bool success = true) {
Value = value;
_Success = success;
}
}
Меня беспокоит случай, когда T
это тип значения, который больше 8 байт (например, пользовательская структура).
Есть ли способ избежать копирования T
экземпляр в Check<T>
"s Value
поле при создании нового экземпляра Check<T>
и вместо этого есть Value
поле содержит только ссылку некоторого вида на экземпляр T
?
После всего этого Check<T>
должен быть только оболочкой, предназначенной для использования только в контексте стека.