在记录中声明延迟加载(只读)属性可以吗?

问题描述 投票:0回答:0

可以将延迟加载属性存储在记录中吗?

例子

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;
        }
    }
}

问题是,如果设置私有字段会破坏不变性,因为一旦访问公共字段,它将保持不变。

c# immutability record
© www.soinside.com 2019 - 2024. All rights reserved.