I'm not quite sure what language you're talking about (C,C++,C#?), but I think you can only check the return with "function = 1" unless you're setting a property in which case "A" is the property and "i,j,k,1" are the arguments.
I only know VB well, so I can tell you that's the way it works in there.
i am using visual basic, but i don't really understand what you are saying, do you reacon you could break it down a bit for me thanks
Surely.
I'm trying to wrap my head around what you're asking.
What you typed, to my knowledge, will not work. If you can explain what you're trying to do, I can get a better idea of it.Note: I'm going to describe both the VB.Net version and VB6/VBA version of properties, feel free to skip the property stuff.
Note2: If any of this is incorrect, please someone feel free to correct me, I don't know everything and only novice to intermediate expertise in .Net or VB6. In other words, someone confirm this for me.
In property terms of what I was thinking you could do is something like this:
Code:
'Random class/random function
dim Vec4 as Class
Vec4.A(i,j,k,l) = 1
or you can check the return function
Code:
'Random class/random function
Dim Vec4 as Class
if Vec4.A(i,j,k,l) = 1 then
...
end if
The property stuff:
According to Wikipedia a property is a intermediary between a private member variable and the outside world. (Code examples from same link).
VB6/VBA:
Code:
' in a class named clsPen
Private m_Color As Long 'Private member variable
Public Property Get Color() As Long 'Public reading function
Color = m_Color
End Property
Public Property Let Color(ByVal RHS As Long) 'Public writing procedure
m_Color = RHS
End Property
VB.Net:
Code:
' in a class named clsPen
Private m_Color As Integer ' Private field
Public Property Color As Integer ' Public property
Get
Return m_Color 'Public reading function
End Get
Set(ByVal Value As Integer)
m_Color = Value 'Public writing procedure
End Set
End Property
All you see as the developer when you're writing to clsPen.Color is:
Writing:
Code:
clsPen.Color=4
Reading:
Code:
A = clsPen.Color
As mentioned in the link, properties adds a level abstractness between the outside code and the private member, so you can actually check to make sure that the value passed is within a range or is a color. You can do this by using built in functions or outside functions.
Validating information to set is a number:
Valdidating in VB6/VBA:
Code:
' in a class named clsPen
Private m_Color As Long 'Private member variable
Public Property Get Color() As Long 'Public reading function
Color = m_Color
End Property
Public Property Let Color(ByVal RHS As Object) 'Public writing procedure
'Long changed to object to allow more abstractness to what is sent to it
' without throwing error, not necessarily correct, but shows the functionality
' of the Let statement
If IsNumeric(m_Color) then m_Color = RHS
'Or
'If TypeName(m_Color) = "Long" then m_Color = RHS
End Property
Validating in VB.Net:
Code:
' in a class named clsPen
Private m_Color As Integer ' Private field
Public Property Color As Object' Public property
Get
Return CObj(m_Color) 'Public reading function
'(CObj converts the integer to an Object)
End Get
Set(ByVal Value As Object)'Public writing procedure
If IsNumeric(Value) then m_Color = Value
'Or the more proper way
'If TypeOf(Value) Is Integer then m_Value = Value
'TypeOf is better than TypeName (imho) because TypeOf is
' returning the value to be compared against a static value
' rather than the string name. I use TypeOf all the time to
' verify things in control loops. Remember use "Is" between
' objects and "=" between everything else to verify it
End Set
End Property
Also, using properties you can make a property read only or write only.
Read only in VB6/VBA:
Code:
' in a class named clsPen
Private m_Color As Long 'Private member variable
Public Property Get Color() As Long 'Public reading function
Color = m_Color
End Property
Write only in VB6/VBA:
Code:
' in a class named clsPen
Private m_Color As Long 'Private member variable
Public Property Let Color(ByVal RHS As Long) 'Public writing procedure
m_Color = RHS
End Property
Read only in VB.Net:
Code:
' in a class named clsPen
Private m_Color As Integer ' Private field
Public ReadOnly Property Color As Integer ' Public property
Get
Return m_Color 'Public reading function
End Get
End Property
Write only in VB.Net
Code:
' in a class named clsPen
Private m_Color As Integer ' Private field
Public WriteOnly Property Color As Integer ' Public property
Set(ByVal Value As Integer)'Public writing procedure
m_Color = Value
End Set
End Property