19. januar 2006 - 10:09
Der er
1 kommentar
Opret objekt med input
Jeg har lavet en metode som ser sådan her ud
public Object button(int x,int y,string name) {
Button +name+ = new button();
}
Det virker ikke som jeg gerne vil have det til, hvad skal jeg bruge istedet for string name. ?
22. januar 2006 - 00:08
#1
Ovenstående virker ikke, og kan aldrig komme til det.
Identifiers (Button + name) kan ikke specificeres som i ovenstående, da identifier skal være angivet på compile time, og name først har et indhold på runtime.
Men måske er der en anden udvej.
Måske kan du benytte en dictionary (System.Collections.HashTable eller lign.) til at gemme dine knapper i f.eks.:
Dim map As New System.Collections.Specialized.HybridDictionary(True)
map.Add("Button" + name, new Button())
Når du så skal benytte din knap, kan du gøre noget i denne retning
Dim btn As System.Windows.Forms.Button = CType(map("Button" + name), System.Windows.Forms.Button)
' Benyt btn til et eller andet...
Dette kan gøres mere elegant med Generics, hvis du benytter .NET 2.0.
I det viste benyttes en HybridDictionary. Med strenge som keys, kan den gøres case-insensitive, og derudover benytter den en liste ved få elementer og en dictionary ved mange.