खोज…


टिप्पणियाँ

पहली दिलचस्प बात यह है कि टिप्पणियों को कैसे लिखना है।

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

उसके बाद, यदि आप अपने कोड में कहीं अपने टेस्ट फंक्शन में टाइप करते हैं, तो यह थोड़ी मदद दिखाई देगी:

Intellisense की मदद

एक परिवर्तनीय घोषित करना

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"
     }
    


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow