Čo s Late Binding?   zodpovězená otázka

VB.NET, Komponenty, Algoritmy

Zdravím,

mal by som takú otázku. Mám funkciu

 Public Function GenerateUserSettings(ByVal Collection As System.Collections.ArrayList) As System.Array
                Try
                    Dim str(Collection.Count - 1) As userXmlStructureSettings
                    For i As Integer = 0 To Collection.Count - 1
                        If TypeOf (Collection.Item(i)) Is System.Windows.Forms.Panel Then
                            str(i).name = Collection.Item(i).Name
                            str(i).visible = Collection.Item(i).Visible
                            str(i).valid = True
                        End If
                        If TypeOf (Collection.Item(i)) Is Sfera.Forms.Controls.TaskPanels.ExpandoPanel Then
                            str(i).name = Collection.Item(i).Name
                            str(i).visible = Collection.Item(i).Visible
                            str(i).collapsed = Collection.Item(i).Collapsed
                            str(i).valid = True
                        End If
                    Next
                    Return str
                Catch
                    Return Nothing
                End Try
            End Function

Ako parameter vstupuje kolekcia, v ktorej mám uložené všetky controly, rekurzívne získané z formulára. Na základe toho aký je to control plním jednotlivé položky štruktúty str. Problém nastáva, keď nastavím Option Strict On.

Neviem ako obísť Late Binding tak aby som to nemusel nejak zásadne prepisovať. Používam VB.NET 2003.

Ďakujem za nápady.

Vašo.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nepracujte s obecnými kolekcemi jako je ArrayList, ale s typovými kolekcemi. Pokud má metoda GenerateUserSettings jednoznačně pracovat s kolekcí ovládacích prvků, předávejte jako parametr System.Windows.Forms.Control.ControlCollection. Stačí se podívat jakého typu je System.Windows.Forms.Control.Controls a bylo by hned jasno. A přepisovat něco není potřeba, k tomu slouží refaktorizace.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback