用于输入"新建或已使用"的布尔与枚举

zam*_*6ak 5 c# enums boolean naming-conventions

我有一个可能很愚蠢的问题......我正在尝试确定键入属性的最佳方法是什么,其值为"新"或"已使用".我是否使用enum或者我应该选择boolean(例如IsNew)?如果我一起去enum,我该怎么称呼这个类型和属性名称?(public NewOrUsed NewOrUsed {get; set;} < - confusing)

显然,enum我可以拥有既不声明值(NONE,NEW,USED)又enum更具未来性的状态(尽管可以声称其他值不存在).同样,这种类型和属性的适当名称是什么?

随着boolean- 它非常直接(使用IsNew或IsUsed)

我知道这很愚蠢,但我很好奇其他人的想法

关心Z ..

更新

如果您愿意enum,请评论类型和属性的适当名称(例如public NewUsedType NewOrUsed {get; set;})

jas*_*son 7

enum 更具前瞻性

并不是的.你不知道未来会带来什么.如果您需要稍后更改,请更改它.所以,KISS.跟着:

 public bool IsNew { get; set; }
Run Code Online (Sandbox Code Playgroud)

热潮,完成了.继续前进,在其他地方增值.

  • 我不喜欢重复的属性.这表明某种独立性.一旦你添加第三个状态,setter就会破坏. (3认同)

Dav*_*vy8 3

您在评论中提到“我已经准备好[原文如此]有一个条件 - 它指的是当某些东西是“二手”时的条件(例如二手车/书可以处于“一般”,“像新的”,“完好”的条件) ;)”

因此,有了这条信息,我肯定会选择bool. 您已经有了一种可扩展的方式来建立条件,因此这更像是一个绝对的事情。您可能在将来的某个时候您可能想要一些东西,无论多个条件是否算作“新”,例如:

public enum ConditionType {Fair, LikeNew, Mint, New}

public ConditionType Condition { get; set; }

public bool IsNew
{
    get { return Condition == ConditionType.New || Condition == ConditionType.Mint; }
}
Run Code Online (Sandbox Code Playgroud)