पर्ल (और अन्य भाषाओं) में एक सशर्त टर्नरी ऑपरेटर को इस तरह व्यक्त किया जा सकता है:
my $foo = $bar == $buz ? $cat : $dog;
क्या VB.NET में एक समान ऑपरेटर है?
पर्ल (और अन्य भाषाओं) में एक सशर्त टर्नरी ऑपरेटर को इस तरह व्यक्त किया जा सकता है:
my $foo = $bar == $buz ? $cat : $dog;
क्या VB.NET में एक समान ऑपरेटर है?
जवाबों:
संस्करण पर निर्भर करता है। If
VB.NET 2008 में ऑपरेटर एक त्रिगुट ऑपरेटर (और साथ ही एक अशक्त संघीकरण ऑपरेटर) है। यह सिर्फ पेश किया गया था, 2008 से पहले यह उपलब्ध नहीं था। यहाँ कुछ और जानकारी दी गई है: विजुअल बेसिक
उदाहरण:
Dim foo as String = If(bar = buz, cat, dog)
[संपादित करें]
2008 से पहले यह था IIf
, जो If
ऊपर वर्णित ऑपरेटर के लिए लगभग समान रूप से काम करता था ।
उदाहरण:
Dim foo as String = IIf(bar = buz, cat, dog)
Iif
हमेशा एक प्रकार की वस्तु लौटाता है Object
, जबकि If(bool, obj, obj)
विकल्प सख्त होने पर टाइप-चेकिंग की अनुमति देता है। ( Dim var As Integer = Iif(true, 1, 2)
विकल्प के साथ सख्ती से संकलन नहीं करेंगे क्योंकि आप आसानी से लिख Dim var As Integer = Iif(true, new Object(), new Object())
सकते हैं। आप Dim var As Integer = If(true, 1, 2)
विकल्प पर कड़ाई से लिख सकते हैं , क्योंकि यह टाइप किया हुआ होगा।)
आईआईएफ हमेशा वीबी में उपलब्ध रहा है, यहां तक कि वीबी 6 में भी।
Dim foo as String = iif(bar = buz, cat, dog)
यह एक सच्चा ऑपरेटर नहीं है, जैसे कि, लेकिन Microsoft में एक फ़ंक्शन। विजुअलबासिक नामस्थान।
यदि () निकटतम समतुल्य है, लेकिन यदि आपने "ऑप्शन स्ट्रिक्ट ऑफ" सेट किया है, तो आने वाले रूपांतरणों से सावधान रहें ।
उदाहरण के लिए, यदि आपकी सावधानी नहीं है तो आप कुछ इस तरह की कोशिश कर सकते हैं:
Dim foo As Integer? = If( someTrueExpression, Nothing, 2)
"फू" को 0 का मान देगा!
मुझे लगता है '?' ऑपरेटर # C के बराबर होगा और इसके बजाय संकलन विफल होगा
Dim foo As Integer? = If( someTrueExpression, New Integer?, 2)
।
Option Strict On
। कारण यह है कि Nothing
VB.NET में C # के default(T)
बजाय के बराबर है null
।
CType(Nothing, DateTime?
)।