Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Deyim Const bir sabiti düzgün başlatmaz, dizi bildirimi öğe sayısını belirtmek için bir değişken kullanır veya isteğe bağlı bir parametre için varsayılan değer olarak bir dizi başlatmaya çalışıyorsunuz.
Hata Kimliği: BC30059
Bu hatayı düzeltmek için
Bildirim bir
Constdeyimse sabitin bir değişmez değer, daha önce bildirilen bir sabit, bir sabit listesi üyesi veya işleçlerle birleştirilmiş sabitler, sabitler ve sabit listesi üyeleri birleşimiyle başlatıldığından emin olun.Bildirim bir dizi belirtiyorsa, öğe sayısını belirtmek için bir değişkenin kullanılıp kullanılmadığını denetleyin. Bu durumda değişkenini sabit bir ifadeyle değiştirin.
İsteğe bağlı bir parametre için varsayılan değer olarak bir dizi başlatmaya çalışıyorsanız, isteğe bağlı parametreler bölümünde Dizi başlatma bölümünde açıklanan alternatif yaklaşımlardan birini kullanın.
Yukarıdaki denetimler sorunu çözmezse, öğesini farklı bir geçici değere ayarlamayı
Const, programı çalıştırmayı ve ardından istenen değere sıfırlamayıConstdeneyin.
İsteğe bağlı parametrelerde dizi başlatma
Dizi başlatma sabit bir ifade olmadığından, isteğe bağlı parametre için bir diziyi varsayılan değer olarak başlatamazsınız. Aşağıdaki kod BC30059 oluşturur:
' This causes BC30059
Public Function MyFun(Optional filters() As (String, String) = New (String, String)() {}) As Boolean
' Function body
End Function
Çözüm 1: İsteğe Bağlı yerine ParamArray kullanın
Değişken sayıda bağımsız değişken kabul etmeniz gerekiyorsa isteğe bağlı bir parametre yerine kullanmayı ParamArray göz önünde bulundurun:
Public Function MyFun(ParamArray filters() As (String, String)) As Boolean
' The ParamArray automatically provides an empty array if no arguments are passed
For Each filter In filters
' Process each filter
Next
Return True
End Function
' Can be called with any number of arguments:
MyFun() ' Empty array
MyFun(("name", "value"))
MyFun(("name1", "value1"), ("name2", "value2"))
Çözüm 2: Hiçbir şeyi varsayılan olarak kullanma ve yöntem gövdesinde başlatma
Varsayılan değeri olarak ayarlayın ve yönteminizde bu değeri Nothing denetleyin:
Public Function MyFun(Optional filters() As (String, String) = Nothing) As Boolean
If filters Is Nothing Then
filters = New (String, String)() {}
End If
' Process the filters array
For Each filter In filters
' Process each filter
Next
Return True
End Function
' Can be called without arguments:
MyFun() ' Uses empty array
' Or with an array:
MyFun({("name", "value")})
Çözüm 3: Parametresiz bir aşırı yükleme sağlayın
yönteminin parametresini gerektirmeyen aşırı yüklenmiş bir sürümünü oluşturun:
' Overload without the parameter
Public Function MyFun() As Boolean
Return MyFun(New (String, String)() {})
End Function
' Main method with required parameter
Public Function MyFun(filters() As (String, String)) As Boolean
' Process the filters array
For Each filter In filters
' Process each filter
Next
Return True
End Function