---
title: "Byval, Byref...."
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/11798-byval-byref"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Harback"
published: "2001-09-27T07:55:00.000Z"
updated: "2002-06-12T07:27:40.000Z"
replies: 8
views: 369
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/11798-byval-byref"
---

# Byval, Byref....

## #1 — Harback, 2001-09-27T07:55Z

Vad är ByVal och ByRef och vad det är för skillnad på dom. 
Har försökt att leta upp förklaringen  men har inte riktigt förstått. Någon som kan förklara?

Permalänk: https://www.webforum.nu/p/11798

## #2 — toha, 2001-09-27T08:03Z

Man skulle kunna säga så att om du gör en parameter till ByVal (by value) så får funktionen en kopia av värdet. Om du gör en parameter till ByRef (by reference) så får funktionen verkligen den variabel som skickas in. Ex:

\---------------------------------------

Function grep(ByVal nummer)
    nummer = 82
End Function

Dim nummer
nummer = 10
Response.Write grep(nummer)
Response.Write nummer

\------------------------------------

Ovanstående kod skriver ut "10" på skärmen. Men om du däremot ändrar parametern till ByRef:

\------------------------------------

Function grep(ByRef nummer)
    nummer = 82
End Function

Dim nummer
nummer = 10
Response.Write grep(nummer)
Response.Write nummer

\------------------------------------

Den här koden kommer att skriva ut "82" på skärmen eftersom funktionen den skriver värdet 82 till variabeln. Man kan säga att funktionen får en pekare till variabeln.

Värt att tänka på är att ByVal är generellt sett snabbare. Det är inte att rekommendera att använda ByRef om man gör anrop över nätverk.

Hoppas att du förstår nu.

Permalänk: https://www.webforum.nu/p/287462

## #3 — emission, 2001-09-27T08:29Z

Värt att tänka på är att ByVal är generellt sett snabbare

Nja, snarare tvärtom. ByVal är snabbare om man anropar out-of-process, till externa objekt. Till vanliga subbar och funktioner är ByRef mycket snabbare. Skillnaden blir oftast marginell, men ByVal-anropen är betydligt långsammare, procentuellt sett.

Permalänk: https://www.webforum.nu/p/287463

## #4 — toha, 2001-09-27T09:21Z

Å fasen. Har alltid trott det var tvärtom. Tack för upplysning Emission - mannen med koll! :)

Permalänk: https://www.webforum.nu/p/287464

## #5 — doggelito, 2002-06-11T14:28Z

...fortsätter på en intressant tråd:
Ska man alltid använda Byval och Byref till functioner och subbar eller finns det tillfällen då man lika gärna kan strunta i dem?

Permalänk: https://www.webforum.nu/p/695831

## #6 — @nders, 2002-06-11T15:33Z

Anger du inte ByVal eller ByRef, så antas ByRef som default.

Lite läsning: <http://www.aspfaqs.com/aspfaqs/ShowFAQ.asp?FAQID=33>

Mvh,

Permalänk: https://www.webforum.nu/p/695877

## #7 — doggelito, 2002-06-12T05:58Z

Hmm, okej: byref skickar alltså in orginalvärdet och byval skickar in en kopia, så långt är jag med. :) 
Men jag kan inte förstå när jag vill göra antingen på det ena sättet eller det andra, finns det några speciella tillfällen för dem båda?

Permalänk: https://www.webforum.nu/p/696115

## #8 — @nders, 2002-06-12T06:15Z

Har du behov av att returnera mer än ett värde så kan du göra det med ByVal-parametrar. Vill du att funktionen skall göra ändringar till variabler som *inte* är lokala för funktionen, skicka hellre in variablerna by reference in i funktionen än använd globala variabler.

I övrigt, använd ByVal.

Mvh,

Permalänk: https://www.webforum.nu/p/696120

## #9 — doggelito, 2002-06-12T07:27Z

okidoki! :bire

Permalänk: https://www.webforum.nu/p/696146

---

Tråden på webben: https://www.webforum.nu/amne/asp/11798-byval-byref
