vb.net - क्या वीबीएनईटी में एक सशर्त टर्नरी ऑपरेटर है?




operators conditional-operator (6)

पर्ल (और अन्य भाषाओं) में एक सशर्त टर्नरी ऑपरेटर इस तरह व्यक्त किया जा सकता है:

my $foo = $bar == $buz ? $cat : $dog;

क्या वीबी.नेट में एक समान ऑपरेटर है?


आईआईएफ हमेशा वीबी में उपलब्ध है, यहां तक ​​कि वीबी 6 में भी।

Dim foo as String = iif(bar = buz, cat, dog)

यह एक असली ऑपरेटर नहीं है, जैसे कि माइक्रोसॉफ्ट में एक समारोह। विज़ुअल बेसिक नेमस्पेस।


आप इस उदाहरण का उपयोग कर सकते हैं:

Dim MyResult As String = If(MyString = MyCondition, "trueValue", "falseValue")

निर्भर करता है। If वीबीएनईटी 2008 में ऑपरेटर एक टर्नरी ऑपरेटर के रूप में कार्य करता है। यह अभी पेश किया गया था, 2008 से पहले यह उपलब्ध नहीं था। यहां कुछ और जानकारी दी गई है: विज़ुअल बेसिक अगर घोषणा

उदाहरण:

Dim foo as String = If(bar = buz, cat, dog)

यदि () निकटतम समतुल्य है लेकिन यदि आपने "विकल्प सख्त बंद" सेट किया है तो निरंतर रूपांतरणों से सावधान रहें

उदाहरण के लिए, यदि आप सावधान नहीं हैं तो आप कुछ ऐसा करने का प्रयास कर सकते हैं:

Dim foo As Integer? = If( someTrueExpression, Nothing, 2)

0 का मूल्य "foo" देगा!

मुझे लगता है '?' सी # में समकक्ष ऑपरेटर इसके बजाय संकलन विफल हो जाएगा


वीबी 2010 और ऊपर भी इस अभिव्यक्ति का समर्थन करते हैं:

परीक्षा ? अभिव्यक्ति 1: अभिव्यक्ति 2

उदाहरण:

var अब = नई तिथि (); var ग्रीटिंग = "अच्छा" + ((अब .getHours ()> 17)? "शाम।": "दिन।");

यहां msdn दस्तावेज़ https://msdn.microsoft.com/en-us/library/zakwfxx4(v=vs.100).aspx : https://msdn.microsoft.com/en-us/library/zakwfxx4(v=vs.100).aspx


वीबीएनईटी एएसपीएक्स पेज में इस सशर्त टर्नरी ऑपरेटर को भी आजमा सकते हैं

<%# If(DataBinder.Eval(Container.DataItem,"Name_Of_Item").ToString()="", "Will print this if condition true", "Will print this if condition false") %>




short-circuiting