public enum Mode
{
Cloud = 1,
Local = 2
}
private static Mode _applicationMode;
public static Mode ApplicationMode(string mode)
{
get
{
{
_applicationMode = Mode.Cloud;
Mode appMode;
if (Enum.IsDefined(typeof(Mode), mode))
{
_applicationMode = (Mode)Enum.Parse(typeof(Mode), mode);
}
else if (Enum.TryParse(mode, true, out appMode))
{
_applicationMode = appMode;
}
}
return _applicationMode;
}
}
Here I am pass "ABC" as a parameter for ApplicationMode function then it returns _applicationMode as 0(default value of AppMode enum)
If I pass "123" as a parameter for ApplicationMode function. But it returns _applicationMode as a "123".
Why Enum is accepting the "123" even though AppMode Enum has only two values i.e., Local and Cloud?
TryParse should give false for "123" also but it gives true for "123".