Tôi đang chạy vào một hành vi mà tôi đã không mong đợi khi sử dụng Enum.TryParse.Enum.TryParse trả về true cho bất kỳ giá trị số
Nếu tôi có một enum:
public enum MyEnum
{
ValueA,
ValueB,
ValueC
}
Và sau đó tôi vượt qua một giá trị số (như là một chuỗi) vào Enum.TryParse, như:
MyEnum outputEnum;
bool result = Enum.TryParse("1234", out outputEnum);
Mặc dù chuỗi "1234" không là giá trị có thể, kết quả sẽ trở lại là true và outputEnum của tôi sẽ có giá trị là 1234.
Có cách nào để tránh hành vi này không? Tôi đang cố gắng để viết một chức năng mà sẽ xử lý đầu vào chuỗi tùy ý như một enum, và điều này đã ném một chút của một monkeywrench trong phát hiện đầu vào xấu của tôi.
http://stackoverflow.com/questions/4728295/why-enums-require-an-explicit-cast-to-int-type –