सेट कस्टम विशेषता मान से इनम सी#में

0

सवाल

मैं एक कस्टम गुण नीचे की तरह,

   [AttributeUsage(AttributeTargets.All, Inherited = true, AllowMultiple = false)]
    public class SetValForAll : Attribute
    {
        public string Limit { get; set; }

        public SetValForAll(string limit)
        {
            Limit = limit;
        }
    }

का उपयोग करते समय यह विशेषता(SetValForAll) मैं चाहता हूँ करने के लिए पारित मूल्य की सीमा का उपयोग कर एक इनम लेकिन यह त्रुटि दिखा 'एक विशेषता तर्क होना चाहिए एक निरंतर अभिव्यक्ति है, typeof अभिव्यक्ति या सरणी निर्माण अभिव्यक्ति की एक विशेषता पैरामीटर प्रकार'

मेरे इनम के नीचे की तरह है,

        public enum LimitEnum
        {
            max,
            min
        }

नीचे दिए गए कोड का टुकड़ा है त्रुटि फेंकने में विशेषता लाइन.

[SetValForAll(LimitEnum.max.ToString())]
public class UsingTheAttributeHere
{
}

मैं कैसे ले जा सकते हैं, मूल्य से LimitEnum का उपयोग करते समय SetValForAll विशेषता है, बजाय गुजर हार्डकोड तार के साथ?

.net attributes c# enums
2021-11-23 20:46:12
2

सबसे अच्छा जवाब

0

आप का उपयोग कर सकता है nameof अभिव्यक्ति है कि आप मिल जाएगा के enum के रूप में एक स्ट्रिंग निरंतर:

[SetValForAll(nameof(LimitEnum.max))]

(संदर्भ.)

2021-11-23 22:27:24

यह एक अच्छा विचार पारित करने के लिए नाम के रूप में एक निरंतर स्ट्रिंग.
R.Abbasi

धन्यवाद @stenehr. यह काम करता है. मैं अपने जवाब के रूप में स्वीकार किए जाते हैं
Abhishek
0

अच्छी तरह से, आप पारित नहीं कर सकते हैं गैर-निरंतर तार में विशेषता मान । क्यों नहीं आप का उपयोग अपने enum प्रकार के बजाय string अपनी संपत्ति के लिए? आप उपयोग कर सकते हैं LimitEnum में पारित करने के लिए निर्माता ।

   [AttributeUsage(AttributeTargets.All, Inherited = true, AllowMultiple = false)]
    public class SetValForAll : Attribute
    {
    public LimitEnum Limit { get; set; }

    public SetValForAll(LimitEnum limit)
    {
        Limit = limit;
    }
    }

का उपयोग करें और इसे इस तरह से :

[SetValForAll(LimitEnum.max)]
2021-11-23 21:04:15

अपने जवाब के लिए. यह हो सकता है बेहतर विकल्प है. आप के लिए धन्यवाद आपके सुझाव
Abhishek

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................