Visual Basic .NET Language
शर्तेँ
खोज…
अगर तब या
Dim count As Integer = 0
Dim message As String
If count = 0 Then
message = "There are no items."
ElseIf count = 1 Then
message = "There is 1 item."
Else
message = "There are " & count & " items."
End If
अगर ऑपरेटर
If(condition > value, "True", "False")
हम If के बजाय if संचालक का उपयोग कर सकते हैं ... तब ... Else..और यदि कथन ब्लॉक होता है।
निम्नलिखित उदाहरण पर विचार करें:
If 10 > 9 Then
MsgBox("True")
Else
MsgBox("False")
End If
के समान है
MsgBox(If(10 > 9, "True", "False"))
If()
शॉर्ट-सर्किट मूल्यांकन का उपयोग करता है, जिसका अर्थ है कि यह केवल उन तर्कों का मूल्यांकन करेगा जो इसका उपयोग करता है। यदि स्थिति झूठी है (या Nullable
कि Nothing
), पहले विकल्प का मूल्यांकन बिल्कुल भी नहीं किया जाएगा, और इसका कोई भी दुष्प्रभाव नहीं देखा जाएगा। यह प्रभावी रूप से condition?a:b
रूप में C # के टर्नरी ऑपरेटर के समान है condition?a:b
।
अपवादों से बचने में यह विशेष रूप से उपयोगी है:
Dim z As Integer = If(x = 0, 0, y/x)
हम सभी जानते हैं कि शून्य से विभाजित करना एक अपवाद होगा, लेकिन If()
यहां केवल उस अभिव्यक्ति के लिए शॉर्ट-सर्कुलेटिंग के खिलाफ गार्ड है जो शर्त पहले ही सुनिश्चित कर चुका है तो वैध है।
एक और उदाहरण:
Dim varDate as DateTime = If(varString <> "N/A", Convert.ToDateTime(varString), Now.Date)
यदि varString <> "N/A"
करने के लिए मूल्यांकन करता False
, यह आवंटित करेगा varDate
के रूप में मूल्य Now.Date
पहली अभिव्यक्ति का मूल्यांकन के बिना।
VB के पुराने संस्करणों में IF If()
ऑपरेटर नहीं है और इसे IIf()
अंतर्निहित फ़ंक्शन के साथ करना है। जैसा कि यह एक फ़ंक्शन है, ऑपरेटर नहीं, यह शॉर्ट-सर्किट नहीं करता है; सभी अभिव्यक्तियों का मूल्यांकन सभी संभावित दुष्प्रभावों के साथ किया जाता है, जिसमें प्रदर्शन दंड, राज्य बदलना और अपवाद फेंकना शामिल हैं। (उपरोक्त दोनों उदाहरण जो अपवाद से बचते हैं यदि IIf
परिवर्तित हो जाते हैं।) यदि इनमें से कोई भी साइड इफेक्ट एक समस्या पेश करता है, तो इनलाइन सशर्त का उपयोग करने का कोई तरीका नहीं है; इसके बजाय, If..Then
को हमेशा की तरह ब्लॉक करें।