Passing String ByVal Into Function Without Changing Reference Value?
Jun 26, 2009
I know strings are immutable, so the minute you change a string reference's value .NET makes a brand new string on the heap. But what if you don't change the value of a string reference; rather, you simply pass it into a function ByVal -- does this operation copy the string value on the heap as well? My inclination is "no," but I'd like to confirm.
For example:
Public Function IsStringHello(ByVal test As String) As Boolean
Return (String.Compare(test, "Hello") = 0)
End Function
Calling program:
Dim myWord as String = "Blah"
Dim matchesHello as Boolean = IsStringHello(myWord)
I know passing myWord by value makes a copy of the reference to "Blah", but since I have not tried to change the string itself, would it make another copy of the string on the heap?
View 6 Replies
ADVERTISEMENT
Aug 17, 2009
I'm still working on the code in this thread [URL] and as I mentioned in that thread, I thought that passing objects around between methods would probably be bad for performance (perhaps not really noticeably at first but maybe if I did it enough then it could have an impact).
1. When you pass a reference type to a method using ByVal then what is actually 'copied' ? I understand that ByVal copies the object into the local method that you are calling where as ByRef passes a reference to the actual object so you can work with the original object. So when you have a Reference type and you pass this ByVal then does copy the entire object or does it just copy a 'reference' to the object?
2. When working with an object that relates to a 'physical' item, such as a file on disk or a network stream between two connected machines, then what happens when you pass it around between methods (this might be irrelevant depending on the answer to the first question) ? I mean if I have a NetworkStream object that represents the data stream coming from a remote computer, if I then pass that ByVal into another method then does that mean I am still working with the same data stream or a copy of it or what?
View 9 Replies
Mar 2, 2011
So strings are reference types right? My understanding is a reference to the string in the heap is passed even when you pass the string ByVal to a method.
String myTestValue = "NotModified";
TestMethod(myTestValue);
System.Diagnostics.Debug.Write(myTestValue); /* myTestValue = "NotModified" WTF? *[code].....
And what is going on under the hood? I would have bet my life that the value would have changed....
View 5 Replies
Jul 28, 2009
ManagmentObject is not recognized!!! Help me!
Imports System.Management
Imports System.Management.Instrumentation
Public Class Form1
Public Function GetHDDFreeSpace(ByVal drive As String) As Double
If drive = "" OrElse drive Is Nothing Then
drive = "C"
End If
[Code]...
View 3 Replies
Jul 19, 2011
Let's says I have a class called Customer :-
Code:
Dim Cust as New Customer("Fred")
I also have a function in a seperate class :-
Code:
Shared Function Example(Example As Customer)
How do I refer to the class itself from within itself? For example :-
Code:
' from within the Customer class, call the Example function
AnotherClass.Example(Me??)
View 11 Replies
Dec 13, 2010
I've got question. I created this;
Public Overloads Sub AddTextLeft(ByVal Text As String, ByVal Fontsize As Decimal, ByVal Bold As Boolean)<br/>
'-- PBA / 22.08.2006<br/>
[CODE]...
View 5 Replies
Sep 23, 2008
The case is that I have two comboboxes (country and state) and a simple code to populate the state combobox accordingly depending on the selected country. Ok this is simple and easy, and this code is within the country combo change event.The case is that I have more than one pairs of those comboboxes and I wouldnt like to repeat all the populate code into every country combo change event.Actually I would like to have only one function and just call it passing as parameter a reference to the combobox I want to populate. Then I could use that reference into the function.
View 10 Replies
Sep 16, 2010
I have an old unmanaged dll function and I want to pass an array to it.The dll function expects the array to be passed by reference.Sometimes I can do that and sometimes I need to pass a pointer in a variable.Is it possible to override the declare for the function so that I could pass either the array by ref, or a pointer to it if I need to?
View 15 Replies
Jul 23, 2010
I have been working on this for a few days, and I am going around in circles. I can make the program work by including everything in the same sub procedure, but the assignment requires that I do certain tasks by using function procedures.What I need to do is take the contents of a text box, reverse the order of the first and last names, and add them to a list box. I can do that, just not by passing value from a function procedure. Here is my
View 4 Replies
Jul 22, 2010
Reading [URL] made me wonder whether the comments in there did apply to Strings in terms of performance. Since strings are copied before being passed, isn't it much more efficient (if the callee doesn't need a copy of string course) to pass strings ByRef?
[Code]...
View 1 Replies
Dec 22, 2010
I have some code that is transforming the coordinates of a line.I want to keep the original coords and I thought passing the line ByVal would be the best way.The original VB6 code used a temporary variable so that the original coords were not updated.I'm confused as when the X & y coords of 'line' are changed 'MyLine' is also changed. I had assumed only 'line' would change and 'MyLine' would remain unchanged'.
Private Sub TransformSaveLine(ByVal MyLine As LineType)
Dim P As Integer
Dim line As LineType
Dim x As Double
[code].....
View 12 Replies
May 2, 2012
I'm trying to establish a connection to my SqlDatabase while getting the connection string from a function. This will eventually lead to dealing with the appconfig file, but for now I'm just getting the basics established.
Imports System.Data.SqlClient
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
[code]....
View 13 Replies
May 31, 2009
have a subroutine which parameter is an array like below:
Private Sub DoubleArrayValues(ByVal arr() As Integer)
Double the values.
[code].....
View 7 Replies
May 20, 2009
How do I dynamically call a function with delegates by passing a string to a background thread in VB.NET?
Currently my code is this
Public Sub invertImageBK(ByVal image As Bitmap)
Dim snxl As System.ComponentModel.BackgroundWorker = createBW()
snxl.RunWorkerAsync(New ImageProperties(image.Clone, "invertImage", Nothing))
[Code].....
View 1 Replies
Mar 1, 2012
What I have done is named a bunch of picture boxes "Q," "W," "E," etc. (the whole alphabet) and named picture that correspond to these picture boxes ("Q.png," "W.png," and so on) and added them to my resources.
For example, the following code would give the picture box named "Q" it's corresponding image "Q.png":
vb
Q.BackgroundImage = My.Resources.Q
Of course, it's kind of a pain in the backside to copy and paste this code and change all the Q's to W's and so on, so I was hoping to create a function to do the job for me:
vb
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'So that I can run the letter as a string through the function,
[Code].....
Hopefully I've provided enough detail so that it is obvious what I'm trying to do.
Obviously, the code I tried above (the second block) doesn't work - it gives a syntax error. I need to change/write to make this function functional.
View 7 Replies
Mar 10, 2009
So I'm passing a masked telephone number in the form of (999)999-9999 to a Function that 'strips' the numbers out and puts them into a string that I then use in an Update SQL statement. So far I have the code below that of course doesn't do anything:
Function StripPhone(ByVal sPhone as String) as String
Dim i as Integer
Dim sStripped as String
[code]....
View 6 Replies
Feb 24, 2010
I see some functions within some code that are:
Public Function GetDataObjects(Of Customer)(ByVal dataset as DataSet)
...
End Function
What exactly does the (Of Customer) do in this instance or mean?
View 3 Replies
Jan 18, 2012
Can a function return a value byref instead of the default byval? That is to say, allow me to directly edit the variable that it is retrieving instead of just giving me a copy of that variable.Right now I'm trying to write a function that will return, based on what the user has selected through a combobox, a particular setting (eg. My.Settings.somethingHere). I then want to be able to edit the setting directly through just calling the function. Is that at all possible?
[Code]...
View 1 Replies
Jul 2, 2009
Is there a Limit to the parameters that can be passed byVal or byRef to a function or procedure in vb .net ?
[URL]
View 2 Replies
Jun 12, 2009
<script runat ="server" >
Dim objDT As New System.Data.DataTable
Dim objDR As System.Data.DataRow
[code]......
View 2 Replies
Nov 22, 2011
Public Sub saveExcelFile(ByVal FileName As String)Dim Excel As Object
[Code]...
that is my code. everytime i open the saved file, it says that it has a different file type and asks me if i want to continue opening it and i click yes. the data inside the excel file is only the word "Success"
View 14 Replies
Jun 10, 2011
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
Textbox1 how the text box by real-time data monitoring?
View 1 Replies
Jan 5, 2012
I'm making this program that opens the same forder in every pc but it identifies the pc name to do it.
Public Class cv7import Private Sub cv7import_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
[Code]...
but I want it to do it with the pc's name and I'm not sure how the environment.systemdirectory works, or even if it's the right one to use. Is it the right thing to use or is there a better solution.
View 12 Replies
Oct 20, 2009
passing a variable to a sub procedure by reference. Not sure I understand how it works. Here is the code.
Private Sub bntcompute_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bntcompute.Click
Dim x, y As Double
getnumbers(x, y)
displaysum(x, y)
[code]....
Is the newly modified variable actually being Passed back? and If so where in the statement is it passed back. is it being passed back to the call getnumbers or is it passed back to the statement displaysum?
View 6 Replies
Apr 30, 2010
Public Class Form1
Public Contestant As New ContestantClass
Public HighScore1 As New ContestantClass
Public HighScore2 As New ContestantClass
Public HighScore3 As New ContestantClass
[Code] .....
The problem I'm having is the first time I take a value, it gets inserted in the right section. The second time I insert a value, it inserts it in the correct place AND updates the previous value I inserted with the new value. So apparently when I'm doing:
HighScore1 = Contestant
It's pointing contestant AT highscore1 rather than taking the name, company, and score from contestant and then storing it in highscore1. How I can pass that info by value rather than by reference?
View 3 Replies
Jun 6, 2011
I have a function that accepts a String by reference:Function Foo(ByRef input As String)
If I call it like this:
Foo(Nothing)
I want it to do something different than if I call it like this:Dim myString As String = Nothing Foo(myString) Is it possible to detect this difference in the way the method is called in VB .NET?All the logic is in the second overload, but I want to perform a different branch of logic if Nothing was passed into the function than if a variable containing Nothing was passed in.
View 3 Replies
Aug 11, 2009
Is it really impossible to create an extension method in C# where the instance is passed as a reference?
Heres a sample VB.NET console app:
Imports System.Runtime.CompilerServices
Module Module1
[code].....
View 3 Replies
Oct 21, 2009
I have a List(Of AddlInfo) with AddlInfo being an object. I'm trying to pass addlInfoList by reference into a function of another class:
[Code]...
This works if I'm not passing the reference into another class, but when I try to do this, I get the following error: Overload resolution failed because no accessible 'Sort' can be called with these arguments:
[Code]...
View 1 Replies
May 3, 2011
So I wanted everyone's opinion on this and what you think of this. Using the WithEvents modifier makes life very easy in VB.Net (srsly, I love it), and I was exploring some of its limitations and noticed you can do something along the lines of this:
[Code]....
View 12 Replies
Jan 25, 2011
Just as a secondary question, usually I reduce: -(ByVal sender As System.Object, ByVal e As System.EventArgs) to just () for most occurrences of auto-generated subroutines. Is there any harm in doing this? I cant see any reduction in performance but do get more readability.
View 8 Replies