如何编写无需处处添加PropertyChanged处理器的测试驱动代码
处理用户邮箱显示状态的ViewModel实现
需求背景
我碰到了一个逻辑清晰的需求:我们有一个包含User实体和UserPrefs配置项的UserProfile,需要根据配置控制邮箱的对外显示规则:
- 当
UserPrefs.ShowEmail设为true时,UserProfile的Email字段要返回用户的真实邮箱(也就是User.Email的值) - 当
UserPrefs.ShowEmail设为false时,Email字段要固定返回"Hidden"
最小可行实现
这个需求逻辑很直接,我在UserProfileViewModel里写了一个只读属性就完成了满足需求的最小实现:
public string Email { get { if (UserPrefs.ShowEmail) return User.Email; else return "Hidden"; } }
如果想要代码更简洁,也可以换成三元表达式的写法,逻辑完全一致:
public string Email => UserPrefs.ShowEmail ? User.Email : "Hidden";
内容的提问来源于stack exchange,提问作者Ash
相关产品推荐
相关产品推荐

