View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Bob Phillips Bob Phillips is offline
external usenet poster
 
Posts: 10,593
Default What of these is the correct syntax to refer to Properties?

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)



"pinkfloydfan" wrote in message
ups.com...
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