![]() | |
![]() |
| | Thread Tools | Search this Thread | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
Hi, Given a set of objects like the following I have two questions - firstly is the technique used below for initialising what are effectively constants in Sub New() correct? Is there a "better" way of doing this? Secondly, I know that the code below for Validate() , requiredProperties etc. will never work - you can't put a reference to nothing into a collection. How could I effect this - or similar functionality? What I really want to be able to do is to put a bunch of pointers into an array and check in Validate() whether they point to an instantiated object... (The idea here being that I can abstract the logic for validating common objects like these into a base class.) Thanks, Nick Class Animal Public MaxAge as int Public TypeDescription as string Public RequiredProperties as Collection Public Sub Validate() for each Obj as Object in RequiredProperties if Obj is nothing then : throw new exception("Required property not set :" & obj.tostring() next Obj End Sub End Class Class Dog : inherits Animal Public sub new() TypeDescription = "Dog's are a man's best friend" maxage = "14" end sub Public CollarSize as integer End Class Class Cat : inherits Animal Public Sub New() TypeDescription = "Nasty animals - not even good for eating" MaxAge = "18" RequiredProperties.add(HasStupidBellAroundNeck) end sub Public HasStupidBellAroundNeck as boolean End Class |
#3
| |||
| |||
|
|
First off, constants values should not change. E.g. I notice in your code that MaxAge is sometimes 18 and sometimes 14. That's not a constant -- that's a variable. So what you're doing is correct. For actual constants, you should instead use |
|
Second, you're setting MaxAge (which is an integer) to "18". If there are quotes around a value, that's a string. It'll work in VB, but only because VB is so forgiving. You should read up on data types to make sure you don't run into issues. |
|
Lastly, you're adding boolean variables into your RequiredProperties collection, not objects. So I don't know why you're checking for objects in there. Maybe you should instead use a Dictionary object to store your properties, then you can check by key whether something is added or not. |
![]() |
| Thread Tools | Search this Thread |
| Display Modes | |
| |