Required fields, pointers and VB.net - 01-05-2005 , 10:46 AM
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.)
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()
Class Dog : inherits Animal
Public sub new()
TypeDescription = "Dog's are a man's best friend"
maxage = "14"
Public CollarSize as integer
Class Cat : inherits Animal
Public Sub New()
TypeDescription = "Nasty animals - not even good for eating"
MaxAge = "18"
Public HasStupidBellAroundNeck as boolean
Re: Required fields, pointers and VB.net - 01-05-2005 , 11:52 AM
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
Public Const MaxAge as Integer = 18
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.
"Nick Stansbury" <nick.stansbury (AT) sage-removepartners (DOT) com> wrote
Re: Required fields, pointers and VB.net - 01-06-2005 , 10:00 AM
Thank you for your response.
the example here appears to fall into the middle. It is a constant in that
across the class in question it is effectively constant - the effect I want
is to define a constant in the base class and set it's value in the
point - I wrote it in OE... I didn't however know that VB was that
forgiving - how distinctly unhelpful of it.
references to anything - not just booleans. But it is a valid point - I can
add a pointer to a string into the collection but not a pointer to an
underlying data type - how irratating.
|Thread Tools||Search this Thread|