0 tabanlı ise, 1 temelli yapmak için nasıl yer tutucu ekleyebiliriz? Teşekkür ederim.Koleksiyon (Of T) 0 tabanlı dizi veya 1 tabanlı dizi mi?
cevap
0-tabanlıdır. Bir geri dönüş sorusu: neden bunu 1 tabanlı yapmak istersiniz? Uzatma Yöntemlerle
sen (siz isteseydiniz) yapabilirdi:
<Extension()>
Public Function GetOneBased(Of T)(ByVal list As IList(Of T), ByVal index As Integer) As T
Return list(index-1)
End Function
<Extension()>
Public Sub SetOneBased(Of T)(ByVal list As IList(Of T), ByVal index As Integer, ByVal value As T)
list(index-1) = value
End Sub
sonra (hemen hemen her koleksiyonundan) kullanın:
Dim foo = data.GetOneBased(1)
data.SetOneBased(1, bar)
Eski kod, 1 tabanlı koleksiyonu kullandığından, şimdi basitleştiriyorum, ancak 0 tabanlıysa, çok büyük bir sayı olacak ifadeler değiştirilmelidir. Yani ... –
Adam: VB çeviri hizmeti için teşekkürler; –
0 tabanlıdır. 1 temelli yapmak istiyorsanız, neden bir indeksi kabul eden bir okuma yöntemi yapmıyorsunuz?
Sen 0 konumunda bir öğe eklemek için Insert(int index, T item) kullanabilirsiniz ama indeks aritmetiği yapmaktan ve 0 tabanlı bir koleksiyon olarak referans göstermekten daha iyi olacağını düşünüyorum. Bu, çoğu programcının bekleyeceğiniz şeyden sonra geliyor. @ Robert'in uzatma metodu fikrinin bir değeri var, ama sanırım kodunuzun nihai koruyucularını karıştırmaya son verecek.
Neden 1 tabanlı yapmak istersiniz? VB.Net dizileri de 0 tabanlı dizinler kullanmıştır.
- 1. dizi tabanlı uygulamalar (imleç uygulaması)
- 2. Dizi Delphi 5.0 Pascal'da 0 veya 1'den başlıyor Pascal?
- 3. Gözlemlenebilir Toplama (Of T) vs BağlamaList (Of T)?
- 4. Zaman tabanlı döngü ve Çerçeve tabanlı döngü
- 5. Koleksiyon için bir dizi enum eklenemiyor
- 6. Dizi bildirimini anlayamıyorum int [] it2 = new int [] [] {{1}} [0];
- 7. Perl: anonim dizi karşısında dizi başvurusu
- 8. Django: parametrik sınıf tabanlı görünümler
- 9. SockJS veya Socket.IO? Ajax tabanlı sayfayı geri almaya değer mi?
- 10. GWT, javascript tabanlı çerçevelerle karşılaştırılabilir mi?
- 11. Jekyll Bootstrap tabanlı blog - Expire üstbilgileri mi?
- 12. REST tabanlı uzaktan dosya sistemi mi arıyorsunuz
- 13. Dizi 1 öğe içermesi gerekir
- 14. Python dizi 1-D Vektör
- 15. Javascript tabanlı yönlendirme: SEO'ya zarar verecek mi?
- 16. Doctrine önek veya sonek olmadan dizi olsun
- 17. Üretim web tabanlı uygulamaları izleme
- 18. Garip semboller kullanarak bayt tabanlı FileOutputStream, karakter tabanlı FileWriter
- 19. Java dizi uzunluğu 0'dan az mı?
- 20. Metin tabanlı oyunda UnboundLocalError
- 21. Rastgele sayı: 0 veya 1
- 22. CSS'yi değil - dosya veya fark tabanlı
- 23. Düzen veya aygıt tabanlı olarak düzenleme değiştir
- 24. Delphi'de ilişkisel dizi, dizi anahtarlı dizi mümkün mü?
- 25. Mocking Yansıma tabanlı çağrılar
- 26. Dizi filtresi
- 27. Dizi türünü dizi dizini olarak kullanabilir miyim?
- 28. Çözünürlük tabanlı testlerle iletki
- 29. Görünüm tabanlı NSTableView
- 30. URL tabanlı veritabanı yönlendirme
Bunu düşünmek için * gerçekten iyi bir nedeniniz var. 0 tabanlı konteynerlerin dünyasında 1 tabanlı bir konteynere geçilmesi, gelecekte bu kodu sürdürmesi veya çalışması gereken programcıları karıştırması garantilidir. –
Tamam, uyarınız için teşekkürler, başka bir yol bulacağım lol –