by default, public or private?

C

Cerebrus99

Hi all,

"If the Dim statement is used (in Visual Basic .NET) or no access modifier
is used (in Visual C#), the variable is considered private in Visual C# and
Visual Basic .NET classes, Public in Visual Basic .NET structures, and
private in Visual C# structures. Methods do not require an access modifier.
If no access modifier is specified, the method is Private by default if in a
class or structure in C#, and Public if in a class or structure in Visual
Basic .NET."

--- MCAD/MCSD Training Kit Windows Apps. Exam 70-306.

Joe wrote :
The variable is private to the module BUT public within the module.

Hi Joe,

I think you are not entirely right. There is no such thing as "public within
the module". The definition of a private variable is one that is not visible
*outside* of the type to which it belongs (Class or struct). "Private" is
the most you can limit the access level, and even all Private variables can
be freely accessed within the class they are declared.
I believe it depends more on where the variable is declared.
Yes, you are right about that. As above, variables in VB.NET structures are
by default Public.
 
P

prefersgolfing

I'm trying to find on MSDN, or someplace, that speaks to variables being
public or private by default. Anyone know where? Thanks.
 
C

Carlos J. Quintero [VB MVP]

By default they are private. You can see the icons in the ClassView window.
--

Best regards,

Carlos J. Quintero

MZ-Tools: Productivity add-ins for Visual Studio
You can code, design and document much faster:
http://www.mztools.com
 
J

Joe Sutphin

I'm not sure that's exactly accurate. In this example

Module Module1

Dim x As String

Sub Main()

x = "This is a string"

Debug.WriteLine(x)

End Sub

End Module



The variable is private to the module BUT public within the module.

I believe it depends more on where the variable is declared.

Joe
 
J

Joe Sutphin

Actually, no I'm right. You're only pointing out a semantical issue.

Since we're in the VB newsgroup, the posts about other languages don't
apply.
 
C

Carlos J. Quintero [VB MVP]

Hi Joe,

What are you talking about here? The scope of a class/module variable refers
to its visibility outside the class/module where they are declared. Of
course that a class or module-level variable is reachable within the
class/module, how could it be otherwise?

--

Best regards,

Carlos J. Quintero

MZ-Tools: Productivity add-ins for Visual Studio
You can code, design and document much faster:
http://www.mztools.com
 
C

Cor Ligthert [MVP]

Joe,
The variable is private to the module BUT public within the module.
I believe it depends more on where the variable is declared.
I don't see what you mean, a variable is default private it nothing is add
to it.
We can forget the DIM keyword because that adds nothing (and therefore the
same as not used in C#).

A value delclared inside a method can only be private to that method. A
value on Class level can have other access rights. (See for that the message
from Randy).

A module is nothing more than a Class which has all his members shared
global to the application (main class).

Cor
 
J

Joe Sutphin

For all intents and purposes DIM and Private are equal.

There are three levels of scope. All variables declared within a procedure
are private.

Variables declared within a module are private to that module using either
Dim or Private.

Variables declared within a module as Public are accessible to any procedure
inside or outside of that module.

Again, my original statement stands, it depends on where you declare the
variable. Not declaring it properly is just wrong!

Joe
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top