2013-04-12 7 views
5

आज मैं इस कोड को देखें:क्या "~" enums से पहले मतलब है

ViewBag.country = from p in CultureInfo.GetCultures(CultureTypes.AllCultures & ~CultureTypes.NeutralCultures) 
           select new SelectListItem 
           { 
            Text = p.EnglishName, 
            Value = p.DisplayName 
           }; 

और मैं नहीं समझ सकता। "~" - यह एक गलती है? जहां तक ​​मुझे याद है, "~" विनाशकों के सामने रखा गया है। लेकिन यह enum है। और यह कोड संकलित!

+0

http://stackoverflow.com/q/93744/284240 –

+1

'~' कई असंबंधित अर्थों वाला एकमात्र प्रतीक नहीं है। '*' है: पॉइंटर्स और गुणा एक दूसरे के साथ बहुत कम करना है। – hvd

+1

@ कुओन्गेल नहीं, यह नहीं है; व्यक्तिगत बिट स्तर पर, 0 और ~ 1 => 0, जहां- 0^1 => 1. या एक ठोस उदाहरण लेने के लिए: 3 और ~ 5 => 2, 3^5 => 6. इस उदाहरण में 3 और 5 द्विआधारी '0011' और '0101' हैं, जानबूझकर एक सत्य-टेबल बनाने के लिए चुने गए हैं। यदि '' ~ '' '' '' 'के बराबर था, तो परिणाम समान होगा। –

उत्तर

6

यह थोड़ा सा नकारात्मक ऑपरेशन है।

~ Operator (C# Reference)

~ ऑपरेटर अपनी संकार्य, जो प्रत्येक बिट पीछे का प्रभाव पड़ता है पर एक बिटवाइज़ पूरक कार्रवाई निष्पादित करता है। बिटवाईयर पूरक ऑपरेटरों को int, uint, long, और ulong के लिए पूर्वनिर्धारित किया गया है।

और क्योंकि अभिन्न प्रकार पर संचालन आम तौर पर शुमार पर अनुमति दी जाती है आप enums ऊपर सूचीबद्ध प्रकार के साथ समर्थित साथ ~ उपयोग कर सकते हैं।

+4

'फ्लैग्स एट्रिब्यूट' (जैसा कि अन्य बिटवाई ऑपरेटर हैं) के साथ चिह्नित अंकों के लिए उपयोगी है। – Oded

संबंधित मुद्दे