Re: Using public members of a class inside the class



You're right about functions and properties being to some extent a matter of
preference; but there is an important conceptual difference in
object-oriented programming (which is what you are doing with VBA).

Properties are values, derived by calculation perhaps, but essentially
static. They can be set as well as read (unless you choose to make the read-
or write-only). When you query a property, you are asking for some
information about the thing that has that property. In your example,
GetTextFromRange isn't a property of anything (and it would make no
difference where you put the function); nor would it make any sense to *set*
the GetTextFromRange property.

Functions are methods. They are an instruction to *do* something. If the
something is to perform a calculation, then the effect is -- as you
observe -- essentially the same as a property.

Consider the objects of Word itself. If you look at the documentation, each
object has properties and methods. The methods are coded as functions.




"Guillermo López-Anglada" <guillermo@xxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote in
message news:OTTqtI1DHHA.3596@xxxxxxxxxxxxxxxxxxxxxxx

I mainly used the "me" qualifier for clarity, but actually it would seem
that it saves you some typing as well in the IDE...

I have no formal training in programming, but isn't the difference between
functions and properties a matter of preference to a certain extent? I
mean, in my particular case, my property ·always· retrieves its value from
the same range... Anyway, I'd very much like to hear any brief explanation
on the topic.

Thanks,

Guillermo

Jezebel wrote:
No reason why not. It's even fairly common: you have some standard
function that you use throughout the app; it's just as useful from within
the module as elsewhere; and for consistency's sake it's better, as far
as possible, always to use the same method.

You don't need the 'me', BTW. And your example looks more like a function
than a property.





"Guillermo López-Anglada" <guillermo@xxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote
in message news:uaGfHM0DHHA.4144@xxxxxxxxxxxxxxxxxxxxxxx
Hello,

I have a class like this:

'Class module

Public Property Get GetTextFromRange() as String
'Code
End Property

Public Function ProcessText() as String

'For example:
ProcessText = Left$(Me.GetTextFromRange,5)


End Sub
'End of Class module

Is it a good practice to use public members of a class like that?

Regards,

Guillermo




.



Relevant Pages

  • Re: Using public members of a class inside the class
    ... I have no formal training in programming, but isn't the difference between functions and properties a matter of preference to a certain extent? ... 'End of Class module ...
    (microsoft.public.word.vba.beginners)
  • Re: Was this the reason why Agility won IEP??
    ... It's a matter of personal preference. ... I don't think Virgin Trains existed then. ... MR is a Franchise operation I believe. ...
    (uk.railway)
  • Re: Coping formulas to new workbook
    ... the original formula. ... And I agree that it's a matter of preference. ... Hitting "Esc" drops the reference to the original cell ...
    (microsoft.public.excel)
  • Re: C# and vb
    ... I believe it's indeed a matter of preference ... I notice that most of the books I look at use C#. ... > booth languages are very similar execept for syntax, ...
    (microsoft.public.dotnet.general)
  • Re: [opensuse] Re: There will be no reply-to-muning on this list
    ... I don't think a settable preference is in the right spirit either. ... no matter which button you press requires that all members do 'the right ... "On two occasions I have been asked (by members of Parliament!), ... - Charles Babbage 1791-1871) ...
    (SuSE)