c# enum -是否为空?
本文关键字:是否 enum | 更新日期: 2023-09-27 18:10:36
我在用户控件中有以下代码:
public partial class MyControl : System.Web.UI.UserControl
{
public Enums.InformationSubCategory SubCategory { get; set; }
...omitted code
}
Enums.InformationSubCategory
是我在其他地方定义的enum
,我可以这样做:
Example 1. <my:MyControl runat="server" SubCategory="Food" ...... />
Example 2. <my:MyControl runat="server" ...... />
如果我根本没有为SubCategory
指定一个值,那么MyControl
的代码隐藏中的子类别的值将是什么?它是null
还是默认值应用于它?我注意到,与int
属性,它默认为零。
字段初始化为default(T)
。记住某种类型的默认值的简单方法是,在明显的实现中,它对应于二进制零。
对于enum,这意味着底层整数类型被设置为0。默认情况下,这对应于枚举中定义的第一个值。
这就是为什么通常将枚举中的第一个值命名为None
。
枚举元素的默认底层类型是int。默认情况下,第一个枚举数的值为0,每个后续枚举数的值增加1。例如:
enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};
在这个枚举中,Sat为0,Sun为1,Mon为2,以此类推。枚举数可以有初始化式来覆盖默认值。
enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};
在此枚举中,元素序列强制从1开始,而不是从0开始。
它将为0,因为您的enum
默认基于Int32
。