Color is a Structure, hence a ValueType whereas Pen is a Reference type.
Everythign in .NET is an 'object' btw. That's why even though integer is an
object , Dim i as Integer is ok. This may help a little if you aren't
familiar with the distinction
http://www.knowdotnet.com/articles/referencetypes2.html
The difference in behavior between valuetypes and referencetypes is NOT
trivial by any means, but understanding the differences is pretty
straightforward. For instance, pass in a Value Type by value to function
and modify it, the original is still in tact. Pass in a Reference Type
ByVal to a method and any changes made to it are made to the object you
passed in.
I'm not sure I totally understand your second question but I'll take a
guess. Those properties are instance properties, meaning they belong to the
instance. Other properties are static (shared in VB) which means they
belong to the class and not a specific instance.
HTh,
Bill
--
W.G. Ryan MVP Windows - Embedded
Have an opinion on the effectiveness of Microsoft Embedded newsgroups?
Let Microsoft know!
https://www.windowsembeddedeval.com/...ity/newsgroups
"Sam" <qd*@datawave.ca> wrote in message
news:Oz**************@tk2msftngp13.phx.gbl...
Hi everyone
Could anyone help me understand the usage of the "New" keyword I'm new
to VB.Net.
1. Why do we use the "New" keyword on some object type variables such as
the myPen of the example below and not with the bgColor. Both the Pen and
Color are objects
Dim myPen As Pen = New Pen(Color.AquaMarine)
Dim bgColor As Color = Color.LightYellow
2. Why do properties such as Size, Location, Font... of controls require a
new instance of their classes when we want to change their properites at
run time
Thanks
Sam