8

由于 VB.Net 中的枚举不能包含这样的重复值:

Enum Test
  A
  a
End Enum

那为什么该[Enum].Parse方法有一个 StringCase 参数?

[Enum].Parse(GetType(Enum), Value, Ignorecase)

http://msdn.microsoft.com/en-us/library/system.enum.parse.aspx

解析(类型、字符串、布尔值)

这对我来说真的有任何意义。

.NET Framework 类的逻辑开发人员在该方法中编写了该忽略大小写标志?

我认为[Enum].Parse逻辑应该是自动检查忽略大小写的值,而不是将布尔参数传递给方法,因为枚举不能包含重复项......或者它可以包含?

4

1 回答 1

13

枚举可以包含仅在大小写不同的值 - 您不能在 VB 中声明它们。这是完全有效的 C#:

public enum Foo
{
    A, a;
}

此外,即使枚举不能包含仅区分大小写的值,这也不意味着您总是希望它区分大小写或总是希望它不区分大小写。对于您试图提供区分大小写匹配的情况,您建议它应该始终不区分大小写会很烦人。将不区分大小写的匹配作为 API(IMO)中的唯一选项很少是一个好主意。

于 2013-10-21T08:39:49.687 回答