我正在寻找有关具有标志的类的最佳实践,该标志决定是否可以对该类执行操作。整个类将在WCF REST服务中返回,并通过RIA Services在Silverlight GUI中使用,以便为用户设置某些操作按钮以启用或禁用。我想知道以这种方式设置课程的最佳实践。例如:
public class SomeCustomerClass
{
private bool _canResetCustomer;
public bool CanResetCustomer
{
get { return _canResetCustomer; } //TODO: Place GET logic here from DB if it's null
set { _canResetCustomer = value; }
}
if (this._canResetCustomer)
{
ResetCustomer();
}
...
看到我的“TODO”?我需要确定bool是否已设置。如果尚未设置,我需要从数据库中的基于数据的规则列表中获取此客户的资格以进行重置。我看到它的方式,有两种选择,我以前用过的都是:
定义另一个跟踪是否已设置CanReset的bool,如下所示:
public bool _canResetSet { get; set; }
将我的bool更改为可空类型。我认为在构造函数中我必须使用_canResetCustomer = null来实例化对象。可能?
不知道为什么我会问这个问题,除非我可能只是害羞的可空类型。这整个困境是否与我设计事物的方式有关?我也经常在webforms应用程序中使用这种标记方法。
答案 0 :(得分:3)
可以使用nullable。如果HasValue
等于false
,请检查数据库。在构造函数中将其设置为null是没有必要的,因为它是默认值。