可以将延迟加载属性存储在记录中吗?
例子
public record TypeWrapper(MemberInfo MemberInfo)
{
private AccessModifiers? _AccessModifiers;
public AccessModifiers AccessModifiers
{
get
{
if (!_AccessModifiers.HasValue)
{
// determining access moidifers from memberinfo
// depending if memberinfo is class, method, field, property etc.
}
return _AccessModifiers.Value;
}
}
}
问题是,如果设置私有字段会破坏不变性,因为一旦访问公共字段,它将保持不变。