为什么[枚举].解析有一个忽略大小写参数

本文关键字:大小写 参数 有一个 枚举 为什么 | 更新日期: 2023-09-27 18:36:08

因为 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 Classes的逻辑开发人员在该方法中编写了忽略大小写标志?

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

为什么[枚举].解析有一个忽略大小写参数

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

public enum Foo
{
    A, a;
}

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