2009-03-12 15 views
5

पर एक सरणी शुरू करना मैंने यह लिखा - बहुत सरल - फ़ंक्शन, और फिर आश्चर्य हुआ कि वीबी के पास ऐसा करने के लिए कुछ पूर्व-निर्मित कार्यक्षमता है, लेकिन कुछ भी विशिष्ट नहीं मिला।VB.Net फ्लाई

Private Shared Function MakeArray(Of T)(ByVal ParamArray args() As T) As T() 
    Return args 
End Function 

इतना नहीं की तरह

Dim someNames() as string = MakeArray("Hans", "Luke", "Lia") 

प्रयोग की जाने वाली क्योंकि इस

Dim someNames() as string = {"Hans", "Luke", "Lia"} 

साथ किया जा सकता लेकिन अधिक

public sub PrintNames(names() as string) 
    // print each name 
End Sub 

PrintNames(MakeArray("Hans", "Luke", "Lia")) 

कोई भी विचार की तरह?

उत्तर

15

कोई कारण नहीं करने के लिए:

Dim someNames() as string = New String()("Han", "Luke", "Leia") 

फर्क सिर्फ इतना अनुमान टाइप करें, जहाँ तक मैं बता सकता है।

मैं बस देख लिया है, और वीबी 9 implicitly typed arrays भी है:

Dim someNames() as string = { "Han", "Luke", "Leia" } 

(यह वीबी 8 में काम नहीं होगा जहाँ तक मुझे पता है, लेकिन स्पष्ट संस्करण होगा अंतर्निहित संस्करण आवश्यक है। अनाम प्रकार है, जो भी वीबी 9. के लिए नए हैं) के लिए

+0

बहुत बढ़िया, पहला उदाहरण मैं वास्तव में क्या ढूंढ रहा था। धन्यवाद। –

+2

मुझे लगता है कि हम सभी सहमत हैं कि यहां सबसे महत्वपूर्ण बात "हान" की सही वर्तनी है :) – Andy

+0

@ एंडी गलत, यह वह क्रम जिसमें वे दिखाई देते हैं .... यह "ल्यूक", "हान" होना चाहिए, और फिर "लीया" .... क्योंकि हम सभी जानते हैं कि हान और लीया एक साथ हैं और अपने भाई से अलग नहीं हैं;) – GoldBishop

6
Dim somenames() As String = {"hello", "world"} 
1
PrintNames(New String(){"Hans", "Luke", "Lia"}) 
1

माइक्रोसॉफ्ट की सिफारिश की निम्न स्वरूप

Dim mixedTypes As Object() = New Object() {item1, item2, itemn} 

प्रति http://msdn.microsoft.com/en-US/library/8k8021te(v=VS.80).aspx

ध्यान दें, आप के रूप में है कि आर्ग के प्रारंभ गिनती से अनुमान लगाया है, तो नई सरणी के आकार को निर्दिष्ट करने की जरूरत नहीं है। यदि आप लंबाई निर्दिष्ट करना चाहते हैं, तो आप "लंबाई" निर्दिष्ट नहीं करते हैं लेकिन सरणी में अंतिम स्थान की अनुक्रमणिका संख्या निर्दिष्ट करते हैं। अर्थात। नया ऑब्जेक्ट (2) {0, 1, 2} 'नोट 3 तर्क।

+0

यह स्पष्ट घोषणा प्रारूप है, एमएस द्वारा सुझाव दिया गया है। निहित प्रारूप वर्ग 'ऑब्जेक्ट' के बिना परिभाषित और माना जाता है। लेकिन, क्या आपके पास 'विकल्प स्पष्ट' सेट होना चाहिए, तो आपके पास कथन में परिभाषित 'ऑब्जेक्ट' होना चाहिए। – GoldBishop