3

在一个解决方案中,我注意到一个具有枚举类型的属性:

Public Enum ContentType
  HTML = 1
  JSON = 2
  XML  = 3
End Enum

Public Property ContentID() As ContentType
  Get
    Return _contentID
  End Get
  Set(ByVal value As ContentType)
    _contentID= value
  End Set
End Property

奇怪的是,这些枚举反映了表中的主键,我遇到了一个问题,因为客户端有不同的主键,这导致无法输入 select 语句。

其他一切似乎都在起作用,这让我开始思考。我的问题是,如果我尝试将值设置为枚举中未包含的值,此属性会引发错误吗?因为正如我所说,这肯定会发生,而且我没有看到任何错误抛出或者我错过了什么。

4

1 回答 1

4

如果我尝试将值设置为枚举中不包含的值,此属性会引发错误吗?

它不会。枚举由整数类型(整数、长整数等)支持,变量将接受其基础类型的任何有效值。

您可以System.Enum.IsDefined在尝试使用之前使用该方法检查该值:

返回指定枚举中是否存在具有指定值的常量的指示。

于 2013-09-12T13:00:50.100 回答