Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Hur byta ut objekt ett objekt som ligger i en lista via referensen

Postades av 2007-07-14 15:17:12 - Johan Nilsson, i forum c# (c-sharp), Tråden har 5 Kommentarer och lästs av 756 personer

Säg att jag har klassen Invoice

class Invoice
{
private List<Product> productList;
}

class Program
{
public Program()
{
Invoice inv = new Invoice();
inv.Add(new Product());
inv.Add(new Product());

Product product = inv[0];
DoSomething(ref product);
}

public void DoSomething(ref Product product)
{
Product newProduct = new Product();
product = newProduct;
}

}


Detta leder inte till att produkten som ligger på plats 0 i Invoice ändras till newProduct... Hur kan man lösa detta. Vill alltså att produkten i Invoice:ens lista ska peka på newProduct iställer för den product jag skickade in.


Svara

Sv: Hur byta ut objekt ett objekt som ligger i en lista via referensen

Postades av 2007-07-14 21:12:40 - Andreas Hillqvist

Varför inte retunera värdet?

class Invoice
{
   private List<Product> productList;
}

class Program
{
   public Program()
   {
        Invoice inv = new Invoice();
        inv.Add(new Product());
        inv.Add(new Product());

        Product product = inv[0];
        inv[0] = DoSomething(product);
   }

  public Product DoSomething(Product product)
  {
       Product newProduct = new Product();
       return newProduct;
   }

} 


Svara

Sv:Hur byta ut objekt ett objekt som ligger i en lista via referensen

Postades av 2007-07-15 11:01:59 - Johan Nilsson

Mmm exemplet var kanske lite dåligt, Product kommer via ett event alltså


public void OnSomething(object sender, EventArgs<Product> product)
{
DoSomething(ref product); // Här byts product ut mot objektet från servicen

}

jag har alltså inte tillgång till listan utan bara en referens till ett objekt i listan...


Svara

Sv: Hur byta ut objekt ett objekt som ligger i en lista via referensen

Postades av 2007-07-15 11:18:02 - Simon Dahlbacka

Om du i stället för att byta ut hela referensen som du gjort i första exemplet

public void DoSomething(ref Product product)
  {
       Product newProduct = new Product();
       product = newProduct;
   }


byter ut de enskilda properties borde det funka (såvida propertyna tillåter sättning och Product inte får nån "identitetskris")

public void DoSomething(ref Product product)
  {
       Product newProduct = new Product();
       // gör stuff
       product.Foo = newProduct.Foo;
       product.Bar = newProduct.Bar;
       //osv
   }



(urk vilken svengelska)


Svara

Sv:Hur byta ut objekt ett objekt som ligger i en lista via referensen

Postades av 2007-07-15 11:24:35 - Johan Nilsson

Japp det är en sån lösning jag har gjort och det verkar vara enda alternativet.
Nån som testat att implementera en generell lösning för detta med reflektion?
Det borde ju gå.


Svara

Sv: Hur byta ut objekt ett objekt som ligger i en lista via referensen

Postades av 2007-07-15 11:34:58 - Simon Dahlbacka

<b>Nån som testat att implementera en generell lösning för detta med reflektion?</b>

Tja, inte exakt det där har jag gjort, men liknande grejer har jag nog pysslat ihop, och vill man ha mer prestanda så tittar man på DynamicMethod :)


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 718
27 958
271 751
3 322
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies