List<ToolStripMenuItem> projectMenuItems = new List<ToolStripMenuItem>(); projectMenuItems är en List som endast kan innehålla klasser av typen ToolStripMenuItem. Det är inte en array. Fördelen är att kompilatorn kan kontrollera vad som sätts in och tas ut ur listan. Detta gäller iaf i Java. I C# 2.0 finns generiska klasser och detta är en sådan. List är en klass som fungerar lite som en array, men har mycket fler "funktioner". Man anger vilken typ listan ska vara av inom <>. Fördelen med en generisk lista istället för en ArrayList t.ex. som fanns tidigare är att nu är listan typad. För att förtydliga ännu mer med ett exempel:vad är List i följande
jag förstår inte det och va gör det, vad är List är den en array ? lägger man en menu i en array? varför?
tack Sv: vad är List i följande
Sv: vad är List i följande
Så det du har gjort är i princip att skapa en array av ToolStripMenuItem, men med lite mer möjligheter.
/JohanSv: vad är List i följande
List<int> minLista = new List<int>();
minLista.Add(1);
minLista.Add(7);
int index0 = minlista[0];
//index0 har värdet 1
Om man försöker trycka in något annat i listan än en int får man ett kompileringsfel.
minLista.Add("Nu smäller det. Wooohooooo! Vilken jävla resa...");
Så kompilerar inte programmet.
I ditt fall består listan bara av ToolStripMenuItems dvs. du kan bara ta ut och sätta in objekt av den typen.
Den stora fördelen med List<> är att du slipper typecasta som du gör med en vanlig ArrayList.
ToolStripMenuItem menuItem = (ToolStripMenuItem)minArrayList[0];
En ArrayList och en List<> är ungefär samma sak fast med en List<> slipper du typkonvertera värdet hela tiden.
Jag hoppas det blev lite klarare nu.