我在下面定义的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>
实例复制到Value
的{{1}}字段,而是{{1} }}字段只保留某种类型的引用到Check<T>
的实例?
毕竟这个Value
应该只是一个只能在堆栈上下文中使用的包装器。