Citar
Parse(Type, String, Boolean)
Bien, esto en un principio para mi no tiene lógica alguna, teniendo en cuenta que en VB.NET no se puede escribir una enumeración con nombres duplicados de esta manera:
Código
Private Enum Test A a End Enum
Pero según he leido, en C# si que es totálmente válido ese tipo de Enums, y entonces esto ya comienza a tener algo de sentido.
El caso es que según me han comentado también sería posible compilar ese tipo de enumeraciones en VB.NET, pero no me han especificado de que manera se podría hacer,
Aunque yo no estoy nada interesado en crear una Enum con valores duplicados la verdad, pero si esto es así de cierto entonces podría significar que las Enums internas del Framework podrían contener nombres de valores "duplicados"?
...en VB.NET, supongamos que hemos escrito una función genérica para parsear un valor de una Enum:
Código
Private Function Enum_Parser(Of T)(Value As Object) As T Try Return [Enum].Parse(GetType(T), Value, True) Catch ex As ArgumentException Throw New Exception("Value not found") Catch ex As Exception Throw New Exception(String.Format("{0}: {1}}", ex.Message, ex.StackTrace)) End Try End Function
La pregunta es, ¿existe algún riesgo de que la función devuelva un falso positivo?.
O en otras palabras, ¿alguna de las Enums del Framework contiene valores que se diferencian en el StringCase pudiendo dar así un falso positivo?
También me atrevería a preguntar porque alguien sería tan estúpido de poner nombres duplicados en una Enum... pero bueno, imagino que habrá razones válidas y quizás no serán tan estúpidas como pienso.