मैं एक कक्षा में एक क्षेत्र के लिए एक एनम बना रहा हूं और मुझे Start-up मूल्यों में से एक की आवश्यकता है। हालाँकि, जब मैं इसे टाइप करता हूं, मुझे एक त्रुटि मिलती है } expected। दूसरी ओर, स्टार्टअप की अनुमति है, लेकिन मुझे वास्तव में डैश की आवश्यकता है।

मैं भी रिक्त स्थान के लिए एक ही समस्या के साथ अन्य क्षेत्रों है ..

क्या किसी को ऐसे तरीके के बारे में पता है जिसे मैं ऊपर दिखाए अनुसार मान पा सकता हूं?

कोड उदाहरण:

using System;

namespace XMLConverter.Models
{
    public enum SiteStatus { Hold, Planned, Proposed, Qualifying, StartUp, Open, Enrollment Complete, Closed, Stopped, Not Selected, Withdrew }

    public class Site
    {
        public string StudyName { get; set; }
        public string SiteNumber { get; set; }
        public string SiteName { get; set; }
        public SiteStatus SiteStatus { get; set; }
    }
}
-3
Gravinco 16 नवम्बर 2015, 16:12

4 जवाब

सबसे बढ़िया उत्तर

C # में एक पहचानकर्ता में डैश वर्ण नहीं हो सकता है, इसलिए आप ऐसा नहीं कर सकते।

यदि आपको एनम मूल्य के लिए विवरण प्राप्त करने की आवश्यकता है, तो आप [Description] विशेषता का उपयोग कर सकते हैं, उदाहरण के लिए:

enum TestEnum
{
    [Description("Start-up")]
    StartUp
}

TestEnum val = TestEnum.StartUp;
string desc = GetEnumDescription((TestEnum)val);

जहां विधि GetEnumDescription इस तरह दिखाई देती है: (स्रोत: कैसे प्राप्त करें मूल्य से सी # एनम विवरण;)

public static string GetEnumDescription(Enum value)
{
    FieldInfo fi = value.GetType().GetField(value.ToString());

    DescriptionAttribute[] attributes =
        (DescriptionAttribute[])fi.GetCustomAttributes(
        typeof(DescriptionAttribute),
        false);

    if (attributes != null &&
        attributes.Length > 0)
        return attributes[0].Description;
    else
        return value.ToString();
}
0
Community 23 मई 2017, 12:15

आप नहीं कर सकते। C # में आइडेंटिफ़ायर, डैश को अनुमति नहीं देता है क्योंकि यह एक ऑपरेटर है, इसलिए यह एनम वैल्यूज़ के लिए समान है।

इसके अलावा कोई रास्ता नहीं है। मैं एक और संकेत के लिए, एक अंडरस्कोर (_) की तरह बदलने का सुझाव दूंगा। एनम के उपयोग पर निर्भर करता है, आप अपने धारावाहिक के साथ भाग्य हो सकता है। यदि आप उदाहरण के लिए JSON का उपयोग करते हैं, तो अलग-अलग मूल्य को क्रमबद्ध करने और अलग करने की संभावनाएं हैं।

2
Patrick Hofman 16 नवम्बर 2015, 13:15

Enum सदस्य हर दूसरे पहचानकर्ता की तरह हैं, और जैसे कि उनके नाम के लिए एक सेट को संतुष्ट करना आवश्यक है नियमों का। इन नियमों के भाग का अर्थ है कि आपके पास पहचानकर्ता या नाम के नामों में डैश नहीं हो सकते हैं।

और अगर आप इसके बारे में व्यावहारिक रूप से सोचते हैं, तो यह बहुत मायने नहीं रखता है। जरा सोचिए अगर Start और up दो वैरिएबल हों तो क्या होगा। चूँकि C # भावों में व्हॉट्सएप को अनदेखा करता है, Start-up का मतलब होगा Start - up जो घटाव ऑपरेशन है।

जबकि एनम सदस्य को एक वैध पहचानकर्ता होने की आवश्यकता है, आप यह नियंत्रित कर सकते हैं कि इसे अन्य पार्टियों को कैसे प्रदान किया जाए। उदाहरण के लिए, आप DisplayAttribute का उपयोग कर सकते हैं यह प्रभावित करता है कि यह UI पर कैसे प्रस्तुत किया गया है, और आप DataMemberAttribute कर सकते हैं यह प्रभावित करने के लिए कि यह कैसे क्रमबद्ध है।

2
poke 16 नवम्बर 2015, 13:21

एनम मूल्यों में "-" होने का कोई कारण नहीं है।

1. यदि आप इसे अपने अनुप्रयोगों के उपयोगकर्ताओं के लिए प्रदर्शित करना चाहते हैं, तो आप एक विशेषता बना सकते हैं और एन्हांस मान प्रदर्शित करते समय विशेषता के मूल्य की जांच कर सकते हैं।

2.as @patric ने बताया कि इसे एक चरित्र से बदलें और मान प्रदर्शित करते समय चरित्र के अस्तित्व की जांच करें और इसे '-' से बदलें

0
Parv Sharma 16 नवम्बर 2015, 13:15