Use Variables Or Properties, And Global Or Static Variables In A Class?
Jun 9, 2012
I'm new in .NET programming.I have a class Form1 that includes Button1_Click event.Button1_Click creates a multiple Text Boxies at run time)Here is the class:
Public Class Form1
Dim shiftDown As Integer
Dim counter As Integer
I define some global variables of a class as follows:
Private Class MyClass Private var1 as Decimal Private list1 as List(Of string)[code].....
But I found that after this form is closed, all above variables, var1, list1, list2 still exist in memory. I thought they should be collected by gc since the form is already disposed as I confirmed.
Add: I have monitored half an hour after the form is closed. But these variables are not collected by gc. I have an automatic update procedure on the form which uses above variables.Since the above variables still hold values, the automatic update procedure is always called which causes exception. (One quick fix is to check if form.isDisposed in update procedure. But I do not think this is elegeant. Besides, these variables occupy memory.)
I try to create a sub main in a project but i can not.I have create a module called Module 1 and inside i have created a Main Sub which is intended to creta a thesaurus_form class instance , like this Code: Module module 1Public Sub Main()Dim thesaurus_form2= New Thesaurus_formEnd SubEnd module.Instead of this, once it has cretaed a first instance of the thesaurus_form class, it creates another one what i dont want at all..How can i do do make it execute the code which is inside the thesaurus_form_load sub..I also can not create a global variable or a staitc variable, because i receive this message.static is not valid in a member variable declaration.
Public Class Question Private Shared _field as Integer = CrazyIntegersRepository.GetOne() ' Some other useful things go here End Class
And the method GetOne throws an exception... How can we manage that? Is a good practice to rewrite that into a static constructor? When is the GetOne method going to be executed if we leave it there in the inline _field declaration?
Ok so my boss told me that I can't use DataSet's and dataadapter and such like this because it isnt good for scalability. So, I must change the way I have my 28,000 records binded to my form. The problem is, I'm only 3 months in with VB.NET and I don't know of any other way to accomplish what I need to do. I was reading somewhere that I can use a Class as my "Order" and I can bind the variables/properties to the form and with this, I can navigate through records while having controls on each important part of the "Order". Unfortunately, I don't know what I'm doing, this is as far as [code]Any guidance as to what I am to do from here in order to pull the data from my database and bind to the property, then to a text box/combo box, and a way that I can use my binding navigator to go through the many records.
I just recently learned about the uses of static local variables in VB.NET and wondered about it's potential use in lazy loading properties.
Consider the following example code.
Public Class Foo Implements IFoo End Class
[Code].....
As far as i can see, this has a few advantages over the usual implementation, primary your inability to access the variable outside of the property, as well as not having to use an additional variable.
My question to you is: Which of those is the "right" way to do it? I know that static variables have additional overhead, but is it bad enough to create, in my personal opinion, unclearer code that can be misused easier? How much performance do you lose compared to the "traditional" method? How does it matter for small classes compared to huge factories?
I was working on window appication previously where i used to create global variables using modules in vb.net, but i found that in C# there is no concept of modules. so how can i create global vaiables in C#
I'm creating an App that requires a few global variables (user information mostly) and I wanted to know the best why to declare these. I would like to create a "global" class with properties for each variable, but the property values reset with every instance of the class. Plus, what is the must excepted way to declare globals, I've heard placing them in their own module is as Globals is not a good practice.
I've got a RPG style game I am putting together - mostly to teach myself vb.net. I am using alot of global variables to hold game values.[code]...
My question is -- I am trying to make a "SAVE" and "LOAD" the game's state. Is there a simple way to save the values of all my global variables, without having to type everysingle variable out. Is there anyway to call upon all my global variables at one time, and possible save/load them to a text file ?
I have this little code here in vb 2008, I created a flag var to see if the user has clicked the button "enter" so the flag would be set to true. If its true then the game would begin...
I have a label that says "Press enter to Play", and if the user presses play the flag is true, the label visible is set to false. I have the keydown event to check if the enter button has been pressed, i checked if it works and it does, but the var of the flag is always false in my other subs...
Thats the thing with vb i dont understand is when you make a public variable, and when you change the value of the var in a sub, it doesnt change globally.
I am currently trying to program an online drawing program using the HTML5 canvas.the thing is, I need to have the current canvas saved somewhere globally. Static variables work, but they do not get shared across a Webgarden. This results in two different drawings being created.I will have to somehow create a new application object which is shared. I figured I will need an external application holding them.
1) How do I replace the application object with my own? So either I will have to make my own program and call to it with remoting or use the ASP.NET session state server for application variables. I favor the Session State Server though.
2) How do I use the session state server for my own variables? How do I access it?
I searched high and low on the internet and only found the ideas mentioned above, but no help executing them.
I mainly code in VB.NET, but I can also understand C# code for examples.
A little info on my application:The client side has two canvas objects on top of each other. The top canvas object us used for drawing stuff, the canvas object below it holds the drawing in the end.When something is drawn, it is sent to the server in it's base64 representation. (getDataUri).The server puts this graphic on top of a stored Bitmap object through a Graphics object.
How the changes are being distributed to the other clients, I am working on that right now. Either I transfer the complete picture or each and every change that is submitted. This should work through Server Push. If this does not work thoroughly I will have to save and timestamp changes. A link to the current implementation, which is not currently fetching changes (but they get transfered to the server... With the problem that some reach one instance some reach the other on either w3wp in the webgarden) from the server is here: http:[url].....
I need to write a simpe calc. program to add, mutiply, subtract and divide. I want to have two textboxes that I enter numbers in and when I click a button, +,-,/ or * a third text box will display the result.Rather than declaring my variables inside each instance of a click event I would like to declare them globally so I just need to perfom the calculation on them and display result. However declaring them globally doesn't work for me. I;ve tried the variables inside the btnAdd click event which works, but as I said I'd prefer to declare them onece globally.
Public Class Form1 Dim number1 As Double = CDbl(txtNum1.Text) Dim number2 As Double = CDbl(txtNum2.Text)[code]...
What happens if I do: Dim x As New Int32? Is a object of int placed on the heap? If it is, maybe your application would be able to access global variables faster if they were reference types.
A global variable as an value type should be somewhere at the bottom of the stack most of the time and it might take more time to get to this then to get a object from the heap. Unless it's the same story with the pointer of this object is also at the bottom of the stack of course.
I need to send up to to selected images (such as an apple) to pictureboxe's on a results page. at the moment I'm using global variables to attempt to display the images like this: Me.pbItem1.Image = New Bitmap("images\" & gstItem1 & ".jpg") Me.pbItem2.Image = New Bitmap("images\" & gstItem2 & ".jpg") I get a directorynotfoundexception 'Could not find a part of the path '\images\apple.jpg' error. I'm new to VB and think this must have something to do with the default path or something.
Is there an automated tool for VB.Net that will identify all global variables in a project?Short of that, is there any scripts that can be used that will facilitate a manual review of global variables?There seems to be tools for C/C++, but not for VB.Net:Tools to find global/static variables in C codebases there a tool to list global variables used and output by a C function?
EDIT: My current approach uses the following VS REGEX searches: For finding global variables:
Why are static variables set equal to 0 in the declaration when 0 would be the default value of the numeric variable anyway when it's first declared? Not including the "=0" in the static declaration seems to work with no problem.
Is it a good practice using global variables in a VB (.NET) application in order to exchange data between forms? As global variable I mean a public variable defined in a module and not a public member or property of a class. Moreover as my personal rule I never access a global variable from a class, but I pass the values to the class via functions.
I have 2 forms in this application. One form is just a simple SQL statement that is generated into a grid. It displays columns/rows. From there I want to be able to click on a row and have the first column of that row transferred to another form. In the second form I want it inputted into a text box. So, the user doesn't have to copy the record back out of the form then open the other form and paste.
The form opening and closing is not the problem. The problem is getting the data to transfer from one form to another!! I am not sure how to do it.. I have only been coding in VB for a few days and no formal training. I am aware of global variables and would be willing to assign the data to a variable and then have it transferred into the textbox of a the second form.
I do not know how global variables work in VB. This is what I got so far............ 'The user clicked the transfer button. Dim obj As System.Data.DataRowView = grid.Current MsgBox(obj.Item(0), vbInformation, "Selected Data") [Code] .....
I have a solution with 5 visual basic projects in it. Each project has an identical module with a few functions and constants - like handling our RS232 data, outputting events to log files, etc, etc..
If I want to change any of this common code, then I have to manually go through and change in each project. Is there a way to have a single module or class that's shared throughout the projects in the entire solution? I've considered creating and referencing a class library, but I'm likely to be making several little tweaks and changes to this "global code" and that method sounds like it could be just as awkward. Can I not just have a module that's visible to all projects, and compiled into each one seperately when the solution is built?
Which is the best way to store global variables, in My.Settings or My.Namespace. The reason I ask is because I need to know certain boolean values if certain forms are open from other forms. At present I am defining Global Boolean variables in My.Application, which give the result I require.