Visual Basic .NET Language
सिंटेक्स का परिचय
खोज…
टिप्पणियाँ
पहली दिलचस्प बात यह है कि टिप्पणियों को कैसे लिखना है।
VB .NET में, आप एक apostrophe लिखकर या REM
लिखकर एक टिप्पणी लिखते हैं। इसका मतलब है कि बाकी लाइन को संकलक द्वारा ध्यान में नहीं लिया जाएगा।
'This entire line is a comment
Dim x As Integer = 0 'This comment is here to say we give 0 value to x
REM There are no such things as multiline comments
'So we have to start everyline with the apostrophe or REM
इंटलिसेंस हेल्पर
एक दिलचस्प बात यह है कि आप विजुअल स्टूडियो इन्टेलिसेंस में अपनी टिप्पणी जोड़ने की क्षमता रखते हैं। तो आप अपने स्वयं के लिखित कार्यों और कक्षाओं को आत्म-व्याख्यात्मक बना सकते हैं। ऐसा करने के लिए, आपको अपने फ़ंक्शन के ऊपर लाइन से तीन बार टिप्पणी प्रतीक टाइप करना होगा।
एक बार हो जाने पर, विज़ुअल स्टूडियो अपने आप एक्सएमएल डॉक्यूमेंट जोड़ देगा:
''' <summary>
''' This function returns a hello to your name
''' </summary>
''' <param name="Name">Your Name</param>
''' <returns></returns>
''' <remarks></remarks>
Public Function Test(Name As String) As String
Return "Hello " & Name
End Function
उसके बाद, यदि आप अपने कोड में कहीं अपने टेस्ट फंक्शन में टाइप करते हैं, तो यह थोड़ी मदद दिखाई देगी:
एक परिवर्तनीय घोषित करना
VB.NET में, हर चर पहले यह प्रयोग किया जाता है (यदि घोषित किया जाना चाहिए स्पष्ट विकल्प चालू पर सेट है)। चर घोषित करने के दो तरीके हैं:
- एक
Function
याSub
अंदर:
Dim w 'Declares a variable named w of type Object (invalid if Option Strict is On)
Dim x As String 'Declares a variable named x of type String
Dim y As Long = 45 'Declares a variable named y of type Long and assigns it the value 45
Dim z = 45 'Declares a variable named z whose type is inferred
'from the type of the assigned value (Integer here) (if Option Infer is On)
'otherwise the type is Object (invalid if Option Strict is On)
'and assigns that value (45) to it
Option Explicit
बारे में पूरी जानकारी के लिए यह उत्तर देखें, Option Explicit
, Strict
और Infer
।
- एक
Class
या एकModule
अंदर:
ये चर (इस संदर्भ में क्षेत्र भी कहे जाते हैं) उन्हें घोषित किए गए Class
प्रत्येक उदाहरण के लिए सुलभ होंगे। वे संशोधित Class
( Public
, Private
, Protected
, Protected Friend
या Friend
) के आधार पर घोषित Class
बाहर से सुलभ हो सकते हैं।
Private x 'Declares a private field named x of type Object (invalid if Option Strict is On)
Public y As String 'Declares a public field named y of type String
Friend z As Integer = 45 'Declares a friend field named z of type Integer and assigns it the value 45
इन क्षेत्रों को Dim
साथ भी घोषित किया जा सकता है, लेकिन संलग्नक प्रकार के आधार पर अर्थ बदल जाता है:
Class SomeClass
Dim z As Integer = 45 ' Same meaning as Private z As Integer = 45
End Class
Structure SomeStructure
Dim y As String ' Same meaning as Public y As String
End Structure
संशोधक
संशोधक यह इंगित करने का एक तरीका है कि बाहरी वस्तुएं किसी वस्तु के डेटा तक कैसे पहुंच सकती हैं।
- जनता
इसका मतलब है कि कोई भी वस्तु प्रतिबंध के बिना इस तक पहुंच सकती है
- निजी
इसका मतलब केवल घोषित वस्तु ही इस तक पहुंच और देख सकती है
- संरक्षित
केवल घोषित वस्तु और इससे प्राप्त होने वाली कोई भी वस्तु का उपयोग और इसे देख सकते हैं।
- मित्र
केवल विलम्बित वस्तु का अर्थ है, कोई भी वस्तु जो इसे विरासत में मिली है और समान नामस्थान की कोई भी वस्तु इस तक पहुंच सकती है और देख सकती है।
Public Class MyClass
Private x As Integer
Friend Property Hello As String
Public Sub New()
End Sub
Protected Function Test() As Integer
Return 0
End Function
End Class
एक समारोह लेखन
एक फ़ंक्शन कोड का एक ब्लॉक है जिसे निष्पादन के दौरान कई बार कहा जाएगा। कोड के एक ही टुकड़े को बार-बार लिखने के बजाय, यह कोड किसी फ़ंक्शन के अंदर लिख सकता है और जब भी जरूरत हो, उस फ़ंक्शन को कॉल कर सकता है।
एक समारोह :
- एक वर्ग या एक मॉड्यूल में घोषित किया जाना चाहिए
- मान लौटाता है (रिटर्न प्रकार द्वारा निर्दिष्ट)
- एक संशोधक है
- इसकी प्रोसेसिंग करने के लिए पैरामीटर ले सकते हैं
Private Function AddNumbers(X As Integer, Y As Integer) As Integer
Return X + Y
End Function
एक समारोह का नाम, रिटर्न स्टेटमेंट के रूप में इस्तेमाल किया जा सकता है
Function sealBarTypeValidation() as Boolean
Dim err As Boolean = False
If rbSealBarType.SelectedValue = "" Then
err = True
End If
Return err
End Function
बस के रूप में ही है
Function sealBarTypeValidation() as Boolean
sealBarTypeValidation = False
If rbSealBarType.SelectedValue = "" Then
sealBarTypeValidation = True
End If
End Function
ऑब्जेक्ट शुरुआती
नामित प्रकार
Dim someInstance As New SomeClass(argument) With { .Member1 = value1, .Member2 = value2 '... }
के बराबर है
Dim someInstance As New SomeClass(argument) someInstance.Member1 = value1 someInstance.Member2 = value2 '...
बेनामी प्रकार (विकल्प Infer होना चाहिए)
Dim anonymousInstance = New With { .Member1 = value1, .Member2 = value2 '... }
समान हालांकि
anonymousInstance
रूप में एक ही प्रकार नहीं हैsomeInstance
सदस्य का नाम अनाम प्रकार में अद्वितीय होना चाहिए, और इसे किसी चर या अन्य ऑब्जेक्ट सदस्य के नाम से लिया जा सकता है
Dim anonymousInstance = New With { value1, value2, foo.value3 '... } ' usage : anonymousInstance.value1 or anonymousInstance.value3
प्रत्येक सदस्य से पहले किया जा सकता है
Key
कीवर्ड। वे सदस्यReadOnly
प्रॉपर्टीज होंगे, जिनके बिना प्रॉपर्टीज को पढ़ा / लिखा जाएगाDim anonymousInstance = New With { Key value1, .Member2 = value2, Key .Member3 = value3 '... }
समान सदस्यों के साथ परिभाषित दो अनाम उदाहरण (नाम, प्रकार,
Key
और आदेश की उपस्थिति) में समान अनाम प्रकार होगा।Dim anon1 = New With { Key .Value = 10 } Dim anon2 = New With { Key .Value = 20 } anon1.GetType Is anon2.GetType ' True
अज्ञात प्रकार संरचनात्मक रूप से समान हैं। कम से कम एक होने ही गुमनाम से दो प्रकार के उदाहरण
Key
एक ही साथ संपत्तिKey
मान बराबर हो जाएगा। उपयोग करने के लिए आपके पासEquals
विधि यह परीक्षण करने के लिए, का उपयोग कर=
संकलन नहीं है औरIs
ऑब्जेक्ट संदर्भ की तुलना करेंगे।Dim anon1 = New With { Key .Name = "Foo", Key .Age = 10, .Salary = 0 } Dim anon2 = New With { Key .Name = "Bar", Key .Age = 20, .Salary = 0 } Dim anon3 = New With { Key .Name = "Foo", Key .Age = 10, .Salary = 10000 } anon1.Equals(anon2) ' False anon1.Equals(anon3) ' True although non-Key Salary isn't the same
नामांकित और बेनामी दोनों प्रकार के इनिशियलाइज़र को नेस्टेड और मिश्रित किया जा सकता है
Dim anonymousInstance = New With {
value,
Key .someInstance = New SomeClass(argument) With {
.Member1 = value1,
.Member2 = value2
'...
}
'...
}
संग्रह प्रारंभिक
Arrays
Dim names = {"Foo", "Bar"} ' Inferred as String() Dim numbers = {1, 5, 42} ' Inferred as Integer()
कंटेनर (
List(Of T)
,Dictionary(Of TKey, TValue)
, आदि।Dim names As New List(Of String) From { "Foo", "Bar" '... } Dim indexedDays As New Dictionary(Of Integer, String) From { {0, "Sun"}, {1, "Mon"} '... }
के बराबर है
Dim indexedDays As New Dictionary(Of Integer, String) indexedDays.Add(0, "Sun") indexedDays.Add(1, "Mon") '...
आइटम एक निर्माता, एक विधि कॉल, एक संपत्ति का उपयोग का परिणाम हो सकता है। इसे ऑब्जेक्ट इनिशियलज़र के साथ भी मिलाया जा सकता है।
Dim someList As New List(Of SomeClass) From { New SomeClass(argument), New SomeClass With { .Member = value }, otherClass.PropertyReturningSomeClass, FunctionReturningSomeClass(arguments) '... }
एक ही समय में एक ही ऑब्जेक्ट के लिए ऑब्जेक्ट इनिशियलज़र सिंटैक्स और कलेक्शन इनिशियलाइज़र सिंटैक्स का उपयोग करना संभव नहीं है। उदाहरण के लिए, ये काम नहीं करेंगे
Dim numbers As New List(Of Integer) With {.Capacity = 10} _ From { 1, 5, 42 } Dim numbers As New List(Of Integer) From { .Capacity = 10, 1, 5, 42 } Dim numbers As New List(Of Integer) With { .Capacity = 10, 1, 5, 42 }
कस्टम प्रकार
हम कस्टम प्रकार के लिए प्रदान करके संग्रह आरम्भिक सिंटैक्स की भी अनुमति दे सकते हैं।
यहIEnumerable
को लागू करना चाहिए और अधिभार नियमों द्वारा एक सुलभ और संगत होना चाहिए विधिAdd
(उदाहरण, साझा या यहां तक कि एक्सटेंशन विधि)उदाहरण दिया गया:
Class Person Implements IEnumerable(Of Person) ' Inherits from IEnumerable Private ReadOnly relationships As List(Of Person) Public Sub New(name As String) relationships = New List(Of Person) End Sub Public Sub Add(relationName As String) relationships.Add(New Person(relationName)) End Sub Public Iterator Function GetEnumerator() As IEnumerator(Of Person) _ Implements IEnumerable(Of Person).GetEnumerator For Each relation In relationships Yield relation Next End Function Private Function IEnumerable_GetEnumerator() As IEnumerator _ Implements IEnumerable.GetEnumerator Return GetEnumerator() End Function End Class ' Usage Dim somePerson As New Person("name") From { "FriendName", "CoWorkerName" '... }
यदि हम केवल संग्रह आरंभीकरण में नाम डालकर एक
List(Of Person)
लिए व्यक्ति वस्तु को जोड़ना चाहते थे (लेकिन हम सूची (व्यक्ति) वर्ग को संशोधित नहीं कर सकते) तो हम एक एक्सटेंशन विधि का उपयोग कर सकते हैं' Inside a Module <Runtime.CompilerServices.Extension> Sub Add(target As List(Of Person), name As String) target.Add(New Person(name)) End Sub ' Usage Dim people As New List(Of Person) From { "Name1", ' no need to create Person object here "Name2" }