我有一个非常复杂的对象设置,并且沿途的每个选择都会限制或扩展可用的选项。我讨厌抛出异常或创建对象的无效实例。因此,我想在基于之前的方法输入参数构建实例时限制选项(可调用的方法)。例如,如果我有一些规则说如果用户属于“A”类型,则允许将其添加到角色中,否则如果它属于“B”类型,则询问位置并且位置是否在特定的邮政编码中......你得到这个想法
这是否可能与匿名方法,类型,无论什么
用户类型 A
UserBuilder builder = new UserBuilder
builer.Build().ForType("A").WithRoles(rolesList);
用户类型 B
UserBuilder builder = new UserBuilder
builer.Build().ForType("B").WithLocations(locationList);
更新:所以基本上我的问题是,有没有办法限制 api 中的所有其他公共方法选项,除了基于对象状态的有效选项。