Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Referring to enums
Message
From
28/01/2011 17:56:23
 
 
To
28/01/2011 12:12:38
General information
Forum:
ASP.NET
Category:
Coding, syntax and commands
Miscellaneous
Thread ID:
01497627
Message ID:
01497722
Views:
41
You could use this:
if (this.cboStatus.SelectedValue == ((int)Policy.StatusCode.DeathNotice).ToString())
~~Bonnie



>I think I made a wrong assumption using these enums.
>
>I now want to compare the selectedvalue of a drop down list with the value of the enum. How do I do that?
>
>My code used to be like this:
>
>
if (this.cboStatus.SelectedValue == "7")
>
>and that worked, but I don't like magic numbers so wanted to code it like this:
>
>
if (this.cboStatus.SelectedValue == Policy.StatusCode.DeathNotice.ToString())
>
>thinking that Policy.StatusCode.DeathNotice.ToString() would bring back "7", but it doesn't, it returns "DeathNotice"!
>
>>>On another note, just an FYI: it's not necessary to provide a number for your Enums (Pending = 1), they will default to numbers in the order you've written, starting at 0. If you want yours to start at 1, as you've shown below, or if you need a different numbering scheme for some reason, then you would have to explicitly define them as you did.
>>
>>Strictly speaking it would only be neccessary to define the value for the first item, the rest will still increment. You can also skip as below ( and save 24bits by using a byte):
enum StatusCode : byte
>>    {
>>        Pending = 1,
>>        InForce,
>>        Withdrawn,
>>        Postponed,
>>        Deferred,
>>        Cancelled =100,
>>        Claimed,
>>        Matured,
>>        Lapsed, 
>>        Surrendered,
>>        DeathNotice
>>    }
>>
>>
>>>>Hi,
>>>>
>>>>I have an enum defined in a partial class of a Business Object (all my BOs are in one project) like this:
>>>>
>>>>
        enum StatusCode
>>>>        {
>>>>            Pending = 1,
>>>>            InForce = 2,
>>>>            Withdrawn = 3,
>>>>            Postponed = 4,
>>>>            Deferred = 5,
>>>>            Cancelled = 6,
>>>>            Claimed = 7,
>>>>            Matured = 8,
>>>>            Lapsed = 9,
>>>>            Surrendered = 10,
>>>>            DeathNotice = 11
>>>>        }
>>>>
>>>>This lets me refer to the enum in code in the partial class no problem, like this:
>>>>
>>>>
this.Entity.Status = StatusCode.Pending;
>>>>
>>>>However, if I want to use this enum in the interface project (separate to the BO project, but part of the overall solution) I can't as the compiler does not recognise it. Is there some way to make this enum available outside of the BO? Or is this bad design?
Bonnie Berent DeWitt
NET/C# MVP since 2003

http://geek-goddess-bonnie.blogspot.com
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform