संभव डुप्लिकेट:
Is there a conditional ternary operator in VB.NET?संगठित होना ऑपरेटर और VB.NET में सशर्त ऑपरेटर
हाय दोस्तों, हम उपयोग कर सकते हैं संगठित होना ऑपरेटर (??) और सशर्त त्रिगुट ऑपरेटर (:) वी # एनईटी में सी # में?
संभव डुप्लिकेट:
Is there a conditional ternary operator in VB.NET?संगठित होना ऑपरेटर और VB.NET में सशर्त ऑपरेटर
हाय दोस्तों, हम उपयोग कर सकते हैं संगठित होना ऑपरेटर (??) और सशर्त त्रिगुट ऑपरेटर (:) वी # एनईटी में सी # में?
मुझे लगता है कि आप एक इनलाइन का उपयोग कर के साथ निकट प्राप्त कर सकते हैं बयान:
//C#
int x = a ? b : c;
'VB.Net
Dim x as Integer = If(a, b, c)
* नोट: अगर कथन का उपयोग करके इस तरह से केवल VB.NET 2008 और बाद में लागू होता है। –
एक (सहकर्मी ऑपरेटर के रूप में if() फ़ंक्शन का उपयोग करने के लिए, इसे केवल दो मानकों के साथ बुलाया जाना चाहिए, और इसका संदर्भ संदर्भ प्रकारों के लिए उपयोग किया जाना चाहिए: 'Dim objC = if (objA, objB)' यह objC को objA सेट करेगा जब तक ओब्जा कुछ भी नहीं है, उस स्थिति में ओबीजेसी ओबीजेबी पर सेट की जाएगी, चाहे वह कुछ भी न हो या नहीं। –
हैं, तो बस में संदर्भ के लिए IIf
Dim x as Integer=IIf(a,b,c)
नहीं। IIF सभी पैरामीटर का मूल्यांकन करता है क्योंकि यह एक नियमित कॉल है। Http://dotnetslackers.com/VB_NET/re-55021_IIF_becomes_If_and_a_true_ternary_operator.aspx – LosManos
होना चाहिए स्ट्रिंग
Private Function Coalesce(ByVal ParamArray Parameters As String()) As String
For Each Parameter As String In Parameters
If Not Parameter Is Nothing Then
Return Parameter
End If
Next
Return Nothing
End Function
के लिए ऑपरेटर सम्मिलित
Sub Main()
Dim x, z As Object
Dim y As Nullable(Of Integer)
z = "1243"
Dim c As Object = Coalesce(x, y, z)
End Sub
Private Function Coalesce(ByVal ParamArray x As Object())
Return x.First(Function(y) Not IsNothing(y))
End Function
LINQ का उपयोग करके देखें, यह सबसे प्रभावी 'Coalesce() 'कार्यान्वयन है। – miroxlav
इस (और ivan के नीचे) के साथ समस्या यह है कि सभी मानकों का मूल्यांकन किया जाएगा। इसलिए, अगर मैं 'डिम चीज़ी = कोलेसेस (सत्र ("चीज़ी"), नई थिंगी लिखता हूं)' हर समय एक नई थिंगी ऑब्जेक्ट बनाई जाएगी (हालांकि सत्र में थिंगी मौजूद होने पर इसे फेंक दिया जाएगा) –
यह एक डुप्लिकेट सवाल नहीं है। इस प्रश्न में नल-कोलेसिंग ऑपरेटर शामिल है। –
परिवर्तित करने के लिए ?? वीबीनेट उपयोग के लिए यदि (:) दो पैरामीटर के साथ उल्लेख किया गया है [यहां] (http://stackoverflow.com/a/6792791/521554) – LosManos