अन्य ने क्या नहीं कहा: कास्टिंग के साथ, आप संकलक को बताते हैं कि आप जानते हैं कि आप क्या कर रहे हैं। तो यदि आप इसे बताते हैं, तो इसे एक enum मान के रूप में देखें, यह करता है। अन्य पोस्टर्स ने बताया कि यह अभी भी क्यों अनुमति है, क्योंकि सी # कंपाइलर कई बुरी चीजों की अनुमति नहीं देता है, भले ही आप कहते हैं कि आप जानते हैं कि आप क्या कर रहे हैं।
यदि मूल्य की अनुमति नहीं थी तो यह वास्तव में खराब होगा, क्योंकि तब आप एक ध्वज मूल्य को int के रूप में सहेज नहीं सकते थे। या, किसी को यह जांचना पड़ता था कि int अनुमत संयोजनों में से एक है, जो कि अगर आप फ्लैग एनम का उपयोग करते हैं तो बहुत कुछ हो सकता है (मानों के साथ जो एक साथ हो सकते हैं)।
सी # की कुछ विशेषताएं हैं जिन्हें मैं जावा डेवलपर (LINQ!) के रूप में लंबे समय तक लेता हूं, लेकिन जावा यहां वास्तव में सही है ... –
@saua: जरूरी नहीं। वे इस दृष्टिकोण के साथ-साथ नुकसान के फायदे हैं। –
इस बिंदु का मुख्य लाभ यह है कि आप मूल्यों को जोड़ सकते हैं, जिन्हें आपको [ध्वज] विशेषता के साथ भी चिह्नित करना चाहिए। –