Does anyone know how to get enum values to string?
example:
private static void PullReviews(string action, HttpContext context)
{
switch (action)
{
case ProductReviewType.Good.ToString():
PullGoodReviews(context);
break;
case ProductReviewType.Bad.ToString():
PullBadReviews(context);
break;
}
}
Edit:
When trying to use ToString(); the compiler complains because the case statement is expecting a constant. I also know that ToString() is is striked out with a line in intellisense
Yes, you can use
.ToString()to get a string value for an enum, however you can’t use.ToString()in a switch statement. Switch statements need constant expressions, and .ToString() does not evaluate until runtime, so the compiler will throw an error.To get the behavior you want, with a little change in the approach, you can use
enum.Parse()to convert theactionstring to an enum value, and switch on that enum value instead. As of .NET 4 you can useEnum.TryParse()and do the error checking and handling upfront, rather than in the switch body.If it were me, I’d parse the string to an enum value and switch on that, rather than switching on the string.