Here's a question that I had recently, that's sort of related to your thread.  I was 
writing code
that had to be optimized for speed, and one of the things I did to speed things up was 
use
immutable objects.  I made the properties of each of these objects into readonly 
fields, and
assigned their values from the constructor methods.  I thought that this would result 
in faster
access times, and in my microbenchmarks (on my laptop only) it did seem to help 
slightly.  Am I
just smoking crack, or can this actually offer a performance benefit?  Also, what's 
the relative
cost of a property get/set versus a method invocation?

I don't think that normal arguments for encapsulation apply here, to support hiding 
the variables
with property getters.  It's the same to calling code, yes?  I don't know about 
compilation
differences, though-- I will buy that.  But what if I am able to put a stake in the 
ground on
certain fields, and say they'll never be changed?

Even though I am presenting this argument, the former Java programmer in me shudders 
that I can
even suggest making fields public.  Then again, there aren't such nice things as 
property getters
in Java, which negate the semantic differences...  Thoughts?

Jeff

P.S.  I would like to start playing around with the IL.  Can anyone recommend any good 
starting
places, tools, or books?  (Besides the obvious ildasm.exe, etc.)  Thanks a lot.

--- Thomas Tomiczek <[EMAIL PROTECTED]> wrote:
> What about later extensibility? Do you want all the clients of your
> objects to HAVE to recompile?
>
> Also, some ams have rules. Our rules say: NO PUBLIC VARIABLES. NEVER.
>
> :-)
>
> Leaves us with a lot of properties.
>
> That said - I don't think we need a keyboard,j ust some automatism to
> write this code for us.
>
> Thomas Tomiczek
> THONA Software & Consulting Ltd.
> (Microsoft MVP C#/.NET)
>
> > -----Original Message-----
> > From: Moderated discussion of advanced .NET topics.
> > [mailto:[EMAIL PROTECTED] On Behalf Of Damien Guard
> > Sent: Dienstag, 21. Oktober 2003 12:36
> > To: [EMAIL PROTECTED]
> > Subject: Re: [ADVANCED-DOTNET] Do properties need a 'holder' keyword?
> >
> > >I find it is very common to have a private field that
> > properties use to
> > hold there value, like
> > >get{return holder;}set{holder=value;}
> >
> > If that's all you are doing in a property's methods then why
> > not remove the property and make the private field public?
> >
> > [)amien
> >
> > ===================================
> > This list is hosted by DevelopMentor(r)  http://www.develop.com
> > NEW! ASP.NET courses you may be interested in:
> >
> > 2 Days of ASP.NET, 29 Sept 2003, in Redmond
> > http://www.develop.com/courses/2daspdotnet
> >
> > Guerrilla ASP.NET, 13 Oct 2003, in Boston
> > http://www.develop.com/courses/gaspdotnet
> >
> > View archives and manage your subscription(s) at
> > http://discuss.develop.com
> >
> >
>
> ===================================
> This list is hosted by DevelopMentorŪ  http://www.develop.com
> NEW! ASP.NET courses you may be interested in:
>
> 2 Days of ASP.NET, 29 Sept 2003, in Redmond
> http://www.develop.com/courses/2daspdotnet
>
> Guerrilla ASP.NET, 13 Oct 2003, in Boston
> http://www.develop.com/courses/gaspdotnet
>
> View archives and manage your subscription(s) at http://discuss.develop.com

===================================
This list is hosted by DevelopMentorŪ  http://www.develop.com
NEW! ASP.NET courses you may be interested in:

2 Days of ASP.NET, 29 Sept 2003, in Redmond
http://www.develop.com/courses/2daspdotnet

Guerrilla ASP.NET, 13 Oct 2003, in Boston
http://www.develop.com/courses/gaspdotnet

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to