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


Pass by ref / pass by value

Postades av 2007-11-06 14:10:18 - Stefan Norinder, i forum vb.net, Tråden har 4 Kommentarer och lästs av 805 personer

Tidigare kodade jag i C#, men har gått över till VB.

Se följande exempel

Dim person1 As Person 
Dim person2 As Person 

person1.Employment.Id = 1
person2.Employment = person1.Employment

person2.Employment.Id = 2 


När jag gör detta blir även
person1.Employment.Id = 2.

Det verkar alltså som att det blir en referens till objektet och inte en kopia av det. Om jag däremot gör

person2.Employment = DirectCast(person1.Employment.Clone(), Employment)


verkar det fungera som jag är van vid.

Inser att detta är fråga 1 på grundkursen i programmering och att jag egentligen borde ha benkoll på det, men jag har inget minne av att C# uppträdde så här. Antingen gör jag en stor tankevurpa eller så är det skillnader mellan hur VB och C# refererar sina object.

Tacksam för svar.


Svara

Sv: Pass by ref / pass by value

Postades av 2007-11-06 14:51:12 - Samuel Adolfsson

Du kommer att få samma resultat i C#.


Svara

Sv:Pass by ref / pass by value

Postades av 2007-11-06 15:08:20 - Stefan Norinder

Märkligt att jag inte upptäckt det tidigare...

Är lösningen i exemplet den mest optimala eller finns det någon bättre?


Svara

Sv: Pass by ref / pass by value

Postades av 2007-11-06 15:29:07 - Per Hultqvist

Vill du ha mer kontroll över kloningsprocessen (Shallow/Deep) så kan du ju göra en egen kloningsmetod eller skapa en konstruktor som tar en instans av "sig självt" och kopierar datan som skickas in. Så det finns några olika metoder, som passar för olika situationer...


Svara

Sv: Pass by ref / pass by value

Postades av 2007-11-07 08:38:48 - Tomas Granlund

Det kan inte vara så att du i C# skapade Employment som en struct? Det ger ju ett annat resultat än om det är en klass:

 
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim bosse As New Person
        Dim nisse As New Person
        bosse.EmpCls = New EmploymentClass
        bosse.EmpStr = New EmploymentStruct
        bosse.EmpCls.ID = 1
        bosse.EmpStr.ID = 1

        nisse.EmpCls = bosse.EmpCls
        nisse.EmpStr = bosse.EmpStr

        nisse.EmpCls.ID = 2
        nisse.EmpStr.ID = 2

        MessageBox.Show("Klassens id är " & bosse.EmpCls.ID & ", men structens id är " & bosse.EmpStr.ID)
    End Sub


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 725
27 958
271 751
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