2012-03-16 17 views
5

संभव डुप्लिकेट:
What is the diffference between the | and || or operators?
What does | (pipe) mean in c#?एक एकल क्या करता है या मतलब है?

मैं कुछ कोड है कि कार्यालय में एक और डेवलपर, जो इस समय नहीं है द्वारा लिखा गया था की है। मेरे पास उसके कोड पर कुछ काम है, लेकिन मुझे पहले इस पर कॉमा नहीं है। मैंने यहां खोज करने की कोशिश की, लेकिन यह मेरी स्ट्रिप्स को दबाता है खोज लाइन से बाहर। मुझे यह भी नहीं पता कि उस प्रतीक का नाम क्या है, इसलिए इस तरह की खोज नहीं हो सका।

this.Action.Values[key] = (int)this.Action.Values[key] | 1; 

मेरा प्रश्न यह है कि इस उदाहरण में एकल या क्या करता है?

+0

bitwise 'या' और bitwise 'और' http://en.wikipedia.org/wiki/Bitwise_operation – kenny

+0

डुप्लिकेट पोस्ट के लिए क्षमा करें, जैसा कि मैंने इस साइट पर खोज बॉक्स को स्ट्रिप आउट किया है द प्रतीक। – Andrew

उत्तर

7

बार (या पाइप), | यह है कि यह हमें झंडे गठबंधन करने के लिए अनुमति देता है एक बिटवाइज़ OR ऑपरेटर, और समझाने का सबसे आसान तरीका है। पर विचार करें:

[Flags] 
public enum WindowFlags 
{ 
    None = 0, 
    Movable = 1, 
    HasCloseBox = 2, 
    HasMinimizeBox = 4, 
    HasMaximizeBox = 8 
} 

बिटवाइज़-OR ऑपरेटर का उपयोग करना, हम झंडे को जोड़ सकते हैं, thusly:

WindowFlags flags = WindowFlags .Movable | WindowFlags .HasCloseBox | WindowFlags .HasMinimizeBox; 

हमें दिए गए ध्वज के लिए "परीक्षण", का उपयोग कर सकते हैं:

bool isMovable = (flags & WindowFlags .Movable); 

निकाला जा रहा है झंडे आंखों पर एक तनाव का थोड़ा अधिक है:

flags &= ~WindowFlags.HasCloseBox; // remove HasCloseBox flag 
1

इस ऑपरेटर का मतलब केवल OR है।

बाइनरी | ऑपरेटरों को अभिन्न प्रकार और बूल के लिए पूर्वनिर्धारित किया जाता है। अभिन्न प्रकारों के लिए, bitwise या इसके संचालन की गणना करता है। बूल ऑपरेंड के लिए, | तार्किक या उसके संचालन की गणना करता है; यानी, परिणाम झूठा है अगर केवल तभी और उसके दोनों ऑपरेशन झूठे हैं।

संदर्भ here

देखें सी # में सभी ऑपरेटरों here

1

| -> तार्किक/बिटवाइज़ या

& -> तार्किक/बिटवाइज़ और

3

ये बिटवाई ऑपरेशंस हैं।

उदाहरण

011000101 
| 100100100 
----------- 
= 111100101 


    011000101 
& 100100100 
----------- 
= 000000100 
1

बाइनरी | ऑपरेटरों को अभिन्न प्रकार और बूल के लिए पूर्वनिर्धारित किया जाता है। अभिन्न प्रकार के लिए, | bitwise या इसके संचालन की गणना करता है। बूल ऑपरेंड के लिए, | तार्किक या उसके संचालन की गणना करता है; यानी, परिणाम झूठा है अगर केवल तभी होता है जब उसके दोनों ऑपरेशन झूठे हैं।

http://msdn.microsoft.com/en-us/library/kxszd0kx(v=vs.100).aspx

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