What of these is the correct syntax to refer to Properties?

P

pinkfloydfan

Hi all

Just a simple question really: I was wondering if there was an
accepted syntax for refering to already defined properties when
writing a sub/function in the same class.

For example:

<Declarations>
Private lBaseNum as Long
</Declarations>

<Class1 Code>
Public Property Get BaseNumber() As Long
BaseNumber = lBaseNum
End Property

Public Property Let BaseNumber(ByVal vNewValue As Long)
lBaseNum = vNewValue
End Property

Public Function AdjBaseNumber(Adj as Long)
AdjBaseNumber = BaseNumber + Adj
End Function
</Class1 Code>

The question arises in the Function AdjBaseNumber, which of the
following is correct:
a) AdjBaseNumber = BaseNumber + Adj
b) AdjBaseNumber = lBaseNum + Adj

In a) I reference the Property (BaseNumber) but in b) I reference the
Private variable (lBaseNum)

Does it make any difference?

Thanks a lot
Lloyd
 
B

Bob Phillips

I always referee to the internal, private value within the code because if
you refer to the property name, you could inadvertently call the code
associated with it.

Consider this example

Option Explicit

Private mTest As Long

Public Property Let TestValue(val As Long)
mtest1 = val
mtest1 = mtest1 * 2
End Property

Public Property Get TestValue() As Long
TestValue = mtest
End Property

Function Test()
TestValue = mtest
End Function

then run this code against the class

Set cTest = New Class1
cTest.TestValue = 7
MsgBox cTest.TestValue
cTest.Test
MsgBox cTest.TestValue

You will see that TestValue has been changed internally when (possibly) not
expected.

--
---
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my addy)
 

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