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


byRef, byVal, Moduler, Funktoiner, Subrutiner

Postades av 2002-02-27 23:20:01 - Daniel Johansson, i forum visual basic - allmänt, Tråden har 8 Kommentarer och lästs av 616 personer

Vill ha svar på följande frågor:

1.) byRef och byVal, vad är det för skillnad om jag tar emot en variabel som referens eller bara skriver typ sub test(x as integer) istället för sub test(byRef x as integer)

2.) När är det tänkt att man ska använda moduler, används dessa bara för att lägga funktioner i eller?

3.) vad är det för skillnad på en subrutin och en funktion?

4.) hur gör jag för att skicka med saker i en "konstruktor"?


Svara

Sv: byRef, byVal, Moduler, Funktoiner, Subrutiner

Postades av 2002-02-27 23:57:20 - Andreas Hillqvist

1.) byRef - Skicar en referens till variabeln
byVal - Skickar en kopia av varibelns data

Standard i vb är ByRef Vilket innebär att det inte är någon skillnad på:
sub test(x as integer)
och
sub test(byRef x as integer)

Om du skickar ett värde ByRef kommer förändringa av väaribeln du skickar in att gälla.
T.Ex
Private Sub Form_Load()
Dim MyValue As Integer
MyValue = 5
Test MyValue
Msgbox MyValue
End Sub

Sub test(x as integer)
x = x + 1
End Sub

Kommer att visa 6 i meddelanderutan.
Om du skickat värdet som ByVal skulle det vara oförändrat.
Man kan skicka det ByVal och ByRef på två sätt. Det första sättet har jag visat. Så här ser det andra sättet ut:

T.Ex
Private Sub Form_Load()
Dim MyValue As Integer
MyValue = 5
Test ByVal MyValue
Msgbox MyValue
End Sub

Sub test(x as integer)
x = x + 1
End Sub

Jag har ByVal framför min variabel i funktionsanropet. Den kommer nu istället skicka en kopia av informationen i variabeln. Vilket innebär att värdet är 5 när meddelanderutan visas.

2.) Moduler ancänds för att deklarera konstanter, datastrukturer/UDT (User Defined Type) och skriva funktioner. Man kan nu oxå skriva Property Procedures i dem och deklarera Enum'er(Sedan ver. 5 av vb). Publika medlemmar av en modul kan bara anropas innefrån ett projekt.

3.) En funktion retunerar ett värde. En subrutin retunerar inget värde. Det är den enda skillnaden mellan dem. En funktionerna kan anropas på samma sätt som en subrutin. Men en subrutin kan inte anropas som en funktion.

4.) Konstruktor finns inte i vb6. Får man vänta tills vb.net. Har bara skrapat lite på ytan här. Så jag låter gärna någon annan förklara denna punkt.


Svara

Sv: byRef, byVal, Moduler, Funktoiner, Subrutiner

Postades av 2002-02-28 00:04:34 - Sven Åke Persson

Hej
ByRef behöver du inte skriva,det blir det automatiskt.
Det betyder att du skickar en pekare som argument till din Sub/Funktion
som pekar på den adress i minnet som din skickade sträng ligger på.
ByVal däremot skall du helst alltid använda.
Varför ? Jo som säkerhet om du ändrar värdet på det skickade
argumentet i din sub/funktion kommer du att få konflikter
på stacken om det är en Global variabel du har skickat.
ByVal skickar det faktiska värdet på variabeln ,inte adress.
ByVal kommer att bli standard i kommand versioner tex som nu .Net

ungefär så ,nu får jag en massa duktiga i strupen men det får man ta.

mvh
Sven


Svara

Sv: byRef, byVal, Moduler, Funktoiner, Subrutiner

Postades av 2002-02-28 07:57:48 - Daniel Johansson

men det finns väl något som heter class_Initialaze(), är inte detta en konstruktor??


Svara

Sv: byRef, byVal, Moduler, Funktoiner, Subrutiner

Postades av 2002-02-28 22:28:21 - Andreas Hillqvist

Inte en konstruktor. Som du påpekar kan man ju skicka argument till en konstruktor. Det kan man inte till class_Initialaze(). Det är bara en händelse(event).


Svara

Sv: byRef, byVal, Moduler, Funktoiner, Subrutiner

Postades av 2002-02-28 22:37:56 - Daniel Johansson

vad kasst...


Svara

Sv: byRef, byVal, Moduler, Funktoiner, Subrutiner

Postades av 2002-03-01 00:15:08 - Sven Åke Persson

Hej Andreas
>arbument
Vad menar du för arbument ?
undrar
Sven


Svara

Sv: byRef, byVal, Moduler, Funktoiner, Subrutiner

Postades av 2002-03-01 11:10:55 - Andreas Hillqvist

Korigerat det till argument. B och G sitter för nära varandra. ;O)


Svara

Sv: byRef, byVal, Moduler, Funktoiner, Subrutiner

Postades av 2002-03-01 11:27:20 - Martin Forsberg

Sven! Jag instämmer att byval är att föredra om man inte absolut behöver skicka variabeln byref. Jag tycker också att man bör skriva ut byref om man ska använda det. Det är alltid läskigt att gå in i andras kod och inte veta om de har gjort variablerna byref av misstag eller avsiktligt!


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

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 569 639
27 953
271 710
11 922
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