In een inmiddels lichtelijk uit de hand gelopen discussie over het gebruik van een CustomCollection vs een Generic Collection wil ik hier toch nog even de meningen peilen.
Ik ben van mening dat "AddressCollection" (IEnumerable) in dit specifieke geval beter is dan een Generic variant. Waarom? AddressCollection bevat een n-aantal objecten van het Type Address. Mijns inziens is een Generic variant precies datgene wat voor Generics staat. Een collectie met Generieke objecten (int, Address, string etc. etc.).
De andere partij van de discussie vind dit niet want: "Een Generic collection is lekker makkelijk, want daar kan je alles in stoppen."
(wat hij vind moet hij trouwens bij de politie brengen
)
Nu ben ik het daar niet mee eens, want mijn stelling is:
- Ik heb een Address object
- Dat stop ik logischerwijs in een AddressCollection
- Ik weet dat ik daar niks anders in hoef te stoppen.
Onderstaand wat voorbeeld classes.
Hoe zijn de meningen hierover?
Ik ben van mening dat "AddressCollection" (IEnumerable) in dit specifieke geval beter is dan een Generic variant. Waarom? AddressCollection bevat een n-aantal objecten van het Type Address. Mijns inziens is een Generic variant precies datgene wat voor Generics staat. Een collectie met Generieke objecten (int, Address, string etc. etc.).
De andere partij van de discussie vind dit niet want: "Een Generic collection is lekker makkelijk, want daar kan je alles in stoppen."
(wat hij vind moet hij trouwens bij de politie brengen
Nu ben ik het daar niet mee eens, want mijn stelling is:
- Ik heb een Address object
- Dat stop ik logischerwijs in een AddressCollection
- Ik weet dat ik daar niks anders in hoef te stoppen.
Onderstaand wat voorbeeld classes.
C#:
en de Collection1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| public class Address { public Address() {} public Address(string street,string name) { Street = street; Name = name; } private string _straat = ""; private string _naam = ""; public string Street { get { } set { } } public string Name { get { } set { } } } |
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
| public class AddressCollection : IEnumerable { private ArrayList alist = new ArrayList(); public Address this[int AddressID] { get { return (Address)alist[AddressID]; } set { alist[AddressID] = value; } } public int Add(Address value) { return alist.Add(value); } public void Remove(Address value) { alist.Remove(value); } public void RemoveAt(int index) { alist.RemoveAt(index); } public int Count { get { return alist.Count; } } public IEnumerator GetEnumerator() { return alist.GetEnumerator(); } } |
Hoe zijn de meningen hierover?
Heart..pumps blood.Has nothing to do with emotion! Bored