2008-10-24 4 views
9

मैं कुछ 3 पार्टी कोड पढ़ रहा था और मैंने पाया इस:सी # (एनम्स) में '^' क्या करता है?

x.Flags = x.Flags^Flags.Hidden; 

यह क्या करता है?

मैंने '&' और '|' का उपयोग किया है bitwise 'और' और 'या' enums के साथ, लेकिन यह पहली बार है कि मैं उस प्रतीक को देखता हूं ...

+3

यह "टोपी" नहीं है। यह एक आलू है। – Will

उत्तर

22

^सी # में bitwise XOR ऑपरेटर है।

संपादित करें: यदि कोई सत्य है और बी गलत है या गलत है और बी सत्य है, लेकिन दोनों नहीं हैं।

+0

बिटवाई ऑपरेशंस की मेरी याददाश्त थोड़ी सी जंगली है ... इस स्थिति में एक्सओआर क्या कर रहा है? –

+0

सही लौटें यदि केवल और केवल ऑपरेटरों में से एक सच है। –

+5

यह ध्वज टॉगल करेगा। X.Flags में निहित बिट। (यदि यह 1 है, तो यह 0 होगा; यदि यह 0 है, तो यह 1 होगा)। –

2

here से लिया:

अभिन्न प्रकार के लिए,^ बिटवाइज़ अनन्य या की अपनी ऑपरेंड गणना करता है। बूल ऑपरेटरों के लिए,^ लॉजिकल अनन्य-या इसके संचालन की गणना करता है; , परिणामस्वरूप सत्य है और केवल अपने ऑपरेटरों के एक अजीब संख्या सत्य है।

15

दैट 'XOR' ऑपरेटर होगा है। आपके उदाहरण कोड में, यह x.Flags के वर्तमान मान के आधार पर फ़्लैग्स को या तो चालू या बंद कर देगा।

इस तरह से करने का लाभ यह है कि यह आपको ध्वज के लिए सेटिंग बदलने की अनुमति देता है। सेट किए गए किसी अन्य झंडे को प्रभावित किए बिना।