2011-08-05 14 views

उत्तर

82

यह सशर्त ऑपरेटर अभिव्यक्ति है।

(condition) ? [true path] : [false path]; 

उदाहरण

string value = someBooleanExpression ? "Alpha" : "Beta"; 

तो अगर बूलियन अभिव्यक्ति सत्य है, मूल्य "अल्फ़ा" का आयोजन करेगा के लिए, अन्यथा, यह "बीटा" आयोजित करता है।

C# tag wiki में this question देखें, एक सामान्य गड़बड़ी के लिए।

+1

मूल्य == कुछ बोलेनएक्सप्रेस –

+7

@YuZhang: नहीं, यह सही है। उदाहरण: स्ट्रिंग मान = 1 == 2? "अल्फा बीटा"; -> मूल्य "बीटा" –

13

यह टर्नरी conditional operator है।

तो ? से पहले कोष्टक में हालत सच है, यह : के बाईं ओर मूल्य, अन्यथा सही करने के लिए मान देता है।

6

यह एक टर्नरी ऑपरेटर है, या यदि किसी और के लिए एक छोटा सा रूप है।

हालत? मूल्य अगर सच: मूल्य अगर झूठी

Here is a link to more information on the subject

संपादित करें: लिंक

+0

@ z-boss धन्यवाद होगा, अभी तय किया गया है – Spooks

1

तय विशेष मामले आपके द्वारा दिए गए, यह एक सशर्त असाइनमेंट है। प्रश्न चिह्न (?) से पहले का हिस्सा एक बुलियन स्थिति है, और भागों को कोलन के दोनों तरफ (:) के रूप में स्थिति के परिणाम के आधार पर असाइन करने के लिए मूल्य हैं (कोलन के बाईं तरफ सही, सही के लिए मूल्य है पक्ष झूठ के लिए मूल्य है)।

1
string requestUri = _apiURL + "?e=" + OperationURL[0] + ((OperationURL[1] == "GET") ? GetRequestSignature() : ""); 

में अनुवाद किया जा सकता है:

string requestUri=""; 
if ((OperationURL[1] == "GET") 
{ 
    requestUri = _apiURL + "?e=" + GetRequestSignature(); 
} 
else 
{ 
    requestUri = _apiURL + "?e="; 
} 
0

इसका मतलब यह है, तो "OperationURL [1]" तो "GET" में लौटने "GetRequestSignature()" और वापसी "" मूल्यांकन करता है। मैं अनुमान लगा रहा हूं कि "GetRequestSignature()" यहां एक स्ट्रिंग देता है। वाक्यविन्यास कंडीशनिंग? ए: बी मूल रूप से एक if-else के लिए खड़ा है जहां कंडीशन सही होने पर ए वापस लौटाया जाता है और जब शर्त गलत होती है तो बी वापस आ जाता है।

1

इसे "इनलाइन अगर" या टर्नरी ऑपरेटर के ऊपर भी कहा जाता है। https://en.wikipedia.org/wiki/%3F:

इसका उपयोग कोड को कम करने के लिए किया जाता है, हालांकि इन्हें बहुत सी लाइन पर उपयोग करने की अनुशंसा नहीं की जाती है क्योंकि यह कोड को काफी कठिन बना सकता है। कल्पना कीजिए:

a = b?c:(d?e:(f?g:h)); 

और आप थोड़ी देर पर जा सकते हैं।

यह मूल रूप से लेखन के रूप में ही समाप्त होता है:

if(b) 
    a = c; 
else if(d) 
    a = e; 
else if(f) 
    a = g; 
else 
    a = h; 

आपके मामले में, "स्ट्रिंग requestUri = _apiURL +" ई = "+ OperationURL [0] + ((OperationURL [1] =="? प्राप्त करें ")? GetRequestSignature():" ");"

भी लिखा जा सकता है: (, बाकी को छोड़ते हुए, क्योंकि यह कोई रिक्त स्ट्रिंग है)

string requestUri = _apiURL + "?e=" + OperationURL[0]; 
if((OperationURL[1] == "GET") 
    requestUri = requestUri + GetRequestSignature(); 

या इस तरह:

string requestUri; 
if((OperationURL[1] == "GET") 
    requestUri = _apiURL + "?e=" + OperationURL[0] + GetRequestSignature(); 
else 
    requestUri = _apiURL + "?e=" + OperationURL[0]; 

अपने पसंद के आधार पर/कोड शैली अपने मालिक कहता है आप का उपयोग करने के लिए।

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