首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >枚举的初始值

枚举的初始值
EN

Stack Overflow用户
提问于 2009-07-22 13:49:28
回答 7查看 62.5K关注 0票数 65

我有一个类,它的属性是枚举

枚举是

代码语言:javascript
复制
/// <summary>
/// All available delivery actions
/// </summary>
public enum EnumDeliveryAction
  {
    /// <summary>
    /// Tasks with email delivery action will be emailed
    /// </summary>
    Email,

    /// <summary>
    /// Tasks with SharePoint delivery action 
   /// </summary>
   SharePoint
  }

当我创建这个类的实例时,在代码中的任何地方,我是否指定了枚举字段的值,但它似乎缺省为枚举列表中的第一项,而不是空值,这是枚举的工作方式吗?如果没有设置,如何确保枚举获得某种类型的空值,我不希望它缺省为枚举中的第一个值。

EN

回答 7

Stack Overflow用户

发布于 2009-07-22 13:52:30

枚举是一种值类型,就像整数一样。您需要将其设置为可空,这样才不会缺省为第一个(或定义为0)枚举成员。

代码语言:javascript
复制
public class MyClass
{
   public EnumDeliveryAction? DeliveryAction { get; set;}
}
票数 10
EN

Stack Overflow用户

发布于 2009-07-22 13:56:06

最佳实践(如代码分析所建议的)是在枚举中始终具有默认值,该值表示未设置的值。

因此,在您的情况下,您可能有:

代码语言:javascript
复制
public enum EnumDeliveryAction
   {

    /// <summary>
    /// Default value
    /// </summary>
    NotSet,

    /// <summary>
    /// Tasks with email delivery action will be emailed
    /// </summary>
    Email,

    /// <summary>
    /// Tasks with SharePoint delivery action 
   /// </summary>
   SharePoint
  }

另外,您不应该在枚举的名称前加上Enum前缀。您可以考虑更改为:

代码语言:javascript
复制
public enum DeliveryAction;
票数 8
EN

Stack Overflow用户

发布于 2009-07-22 13:55:51

您可以从任何值(例如1)开始枚举,但是当它们表示Database中的查找值时,您通常希望它们匹配。

根据.Net框架设计指南,当有意义时,我通常会将第一个枚举声明为None (= 0)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1165402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档