p2p.wrox.com Forums

p2p.wrox.com Forums (http://p2p.wrox.com/index.php)
-   ASP.NET 2.0 Basics (http://p2p.wrox.com/forumdisplay.php?f=136)
-   -   Some basic terms (http://p2p.wrox.com/showthread.php?t=63813)

Sheraz Khan November 15th, 2007 09:51 PM

Some basic terms
 
Hi
It will be greate if someone explain me the following terms with example in vb.net.

Option explicit

Static and Shared

I got the basic definations of static and shared but donno are they valid for VB.Net??? If not they what will be correct defination?


Static Variable:
Normally, a local variable in a procedure ceases to exist as soon as the procedure terminates. A static variable remains in existence and retains its most recent value. The next time your code calls the procedure, the variable is not reinitialized, and it still holds the latest value you assigned to it. A static variable continues to exist for the lifetime of the class or module in which it is defined.

Shared Variable:Sharing a member of a class or structure makes it available to every instance, rather than having each instance keep its own copy. This is useful, for example, if the value of a variable applies to the entire application. If you declare that variable to be Shared, then all instances access the same storage location, and if one instance changes the variable's value, all instances access the updated value.


Any definations of all other terms will be appreciated.



Cheers
Sheraz

dparsons November 16th, 2007 12:07 AM

This is one thing that annoys me about Visual Basic, mostly from the angle of a VB.NET programmer trying to move to C#. Anyway.

This may get a bit confusing but try and bear with me.

The shared keyword is most similar to the static keyword in C# essentially what it means is that a method belongs to a class and not an instance of a class. So

...Class definition
Public Shared Sub foo()
'Do something
End Sub

Public Sub fooNew()
'Do something
End Sub
'end class definitnion

So now you have a Shared sub and an instance member sub that you would access like this respectively:

'Shared Member
MyNewClass.Foo()

'Instance Member
Dim c as New MyNewClass()
c.fooNew()

The static keyword, as your defintion states: A static variable continues to exist for the lifetime of the class or module in which it is defined.

So this is what it means:

Public Sub foo(i as Integer)
    Static newI As Integer
    Response.Write(newI.ToString())
    newI = i
End Sub

and you made a call like this:
foo(15)
foo(30)

your output would be:
0
15

And Option Explicit means that the compiler forces you to declare your variables (this is the default in VS), however, if you set Option Explicit Off it is legal to do something like

Public Sub foo()
   Response.Write(VarType(myUndeclaredVariable).ToStr ing())
End Sub

Which will write: object to the screen.

anyway hope that helps.

================================================== =========
Read this if you want to know how to get a correct reply for your question:
http://www.catb.org/~esr/faqs/smart-questions.html
================================================== =========
.: Wrox Technical Editor :.
Wrox Books 24 x 7
================================================== =========


All times are GMT -4. The time now is 03:02 AM.

Powered by vBulletin®
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
© 2013 John Wiley & Sons, Inc.