Sitter och modellerar ett nytt projekt och undrar vilken typ av objekt jag skall använda för att returnera t.ex. en lista som kan innehålla en massa olika datatyper. För tillfället har jag en arraylist. Finns det någon annan typ som lämpar sig bättre?
Ojekt typ?
6 svar · 363 visningar · startad av maqe
IList :)
Anledningen till att jag frågar är att jag tycker det blir så många typkastningar och kollar om saker innehåller null som inte får vara nulll men det kanske man inte kommer ifrån?
Det kommer du inte ifrån. Med Generics i .NET 2.0 slipper du typomvandlingarna och kan få dina listor typsäkra på ett enkelt sätt, utan att behöva skapa egna collections.
- M
Okay, synd att man inte har tillgång till .NET 2.0 redan nu då :)
maqe skrev:
Anledningen till att jag frågar är att jag tycker det blir så många typkastningar och kollar om saker innehåller null som inte får vara nulll men det kanske man inte kommer ifrån?
Spontant så tycker jag att det känns det fel att du går en sådan koll, med null values, när du loopar igenom listan.
Så länge du har olika objekt så slipper du inte undan typkastningen, och det tror jag inte ens 2.0 löser.
Frågan är vad du skall retunera objekten till?
Jag skapar gärna två olika properties för min collections. En som retunerar ett generellt interface som tex, IList eller IDictionary och en metod som retunerar en read-only typad lista av den typen som finns i listan. (frågan är vad för typ du skall välja här. :l ) Interface propertiet används då jag hämtar och sparar objekten till databasen och det andra används då jag arbetar med objektet. Men genom Interface propertiet så kan inte du inte lägga till objekt utan det sker i "huvudobjektet". Anledningen till att den är readonly är just att du måste gå genom parent objektet. Inte alltid säkert att det finns ett sådant men men..
ex.
orders och orderrader..
public IList OrderRows
get;set;
public OrderRows GetOrderRows()
public void AddOrderRow(IOrderRow rowToAdd)
public void RemoveOrderRow(IOrderRow rowToRemove)
I AddOrderRow så kontrollerar jag så att jag verkligen får lägga till objektet till den aktuella order, dvs det får inte vara null osv. de typade listorna skapar jag med codesmith.. men ack vad skönt det skall bli med generics
Jag sitter och ska föröka göra ett tidrapporteringssystem där man kommer mata in information i ett antal textboxar t.ex. Som jag har det nu så tar mitt BLL emot en ArrayList från mitt PL som sedan skickar det vidare till mitt DAL som kör en INSERT mot databasen. Typerna som skickas är t.ex. string och double