Like I said - we'll have to agree to disagree on the technical issue in hand
- I think that, when you have a property, you use it internally & externally
for various (mentioned reasons).

A quick google reveals a few links which support my view -
http://stackoverflow.com/questions/629029/using-getters-within-class-methods

Disclaimer: I use the above approach, and I think you should too. However,
this being a free world, you can use whatever approach you like best :)

Lunchtime :)

On Thu, Dec 17, 2009 at 1:08 PM, Processor Devil
<[email protected]>wrote:

> 1) no
> 2) it changes the meaning of the quoted section
>
> The worst part is I am actually attending this troll war because our dev
> systems are stuck and I have nothing else to do...
>
> I would consider the right answer for the OP's question the one of
> Cerebrus, that one is reasonable.
>
> --------------------------------------------huge stroke
> line-------------------------------------------------------------------------
> here is place for flame war
>
> I think your code stink like a sock of an old elephant... :P
>
>
> 2009/12/17 Jamie Fraser <[email protected]>
>
>> The rest of your message doesn't change the meaning of the quoted section.
>>
>> You are telling people how to do something.
>>
>> I am telling people how I think they should do something.
>>
>> Both are the same - your issue isn't anything to do with how I'm phrasing
>> it, it is because you don't agree with the concept but can't rationalise an
>> argument to counter it.
>>
>>
>> On Thu, Dec 17, 2009 at 12:54 PM, Processor Devil <
>> [email protected]> wrote:
>>
>>> REALLY? And did you read it all?
>>>
>>> inside the same class use i = me._intID :)
>>> class properties are used to set or get the variable content out of the
>>> current class scope, but yes, either works
>>> EITHER WORKS
>>>
>>>
>>> 2009/12/17 Jamie Fraser <[email protected]>
>>>
>>>> Actually, re-reading your earlier post, you're being a complete
>>>> hypocrite. You said
>>>>
>>>>
>>>> "inside the same class use i = me._intID :)"
>>>>
>>>> Not even a should - simply prescribing to others how they should code.
>>>> That is far worse (by your definition) than me saying Should!
>>>>
>>>>
>>>> On Thu, Dec 17, 2009 at 12:48 PM, Jamie Fraser 
>>>> <[email protected]>wrote:
>>>>
>>>>> No, I understand exactly what you mean, but I feel that is the way that
>>>>> people SHOULD do it, hence my use of the word.
>>>>>
>>>>> I didn't find your earlier comments either funny or productive
>>>>> regarding my ability (or you perceiving my "lack of" ability), and I like 
>>>>> to
>>>>> think I've been fairly successful so far in my career as a Developer, and 
>>>>> if
>>>>> *I* think something should be done in a particular way, I'm happy to tell
>>>>> this to others. Whether they do this or not is entirely up to them. 
>>>>> However,
>>>>> this is becoming self-perpetuating, as you think I *shouldn't* tell people
>>>>> what I think they *should* do.
>>>>>
>>>>> Let's just agree to disagree, and try not to throw any "jokes" around
>>>>> later.
>>>>>
>>>>>
>>>>> On Thu, Dec 17, 2009 at 12:25 PM, Processor Devil <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> again and again... Yes,  many open source projects uses that... and
>>>>>> many open source project are also nothing more but just spaghetti code 
>>>>>> (try
>>>>>> to search for SpectateSwamp Desktop Search, you will laugh for sure), 
>>>>>> but...
>>>>>> why the hell do I need some less skilled programmer to change encryption 
>>>>>> key
>>>>>> and IV vector properties in my class when there is function which does 
>>>>>> both
>>>>>> and it works as it should? Sometimes you just need to change MORE than 
>>>>>> just
>>>>>> one variable to make the code works, do you want end-programmer to do it 
>>>>>> one
>>>>>> by one and let him make a mistake or omit something or you will give him
>>>>>> just function that will change it internally and all for sure?
>>>>>>
>>>>>> P.S. about the Open Source projects... so if they do it then it is the
>>>>>> only way? All I wanted you to do next time was not to use word SHOULD, 
>>>>>> is it
>>>>>> hard to understand?
>>>>>>
>>>>>>
>>>>>> 2009/12/17 Jamie Fraser <[email protected]>
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Dec 17, 2009 at 11:38 AM, Processor Devil <
>>>>>>> [email protected]> wrote:
>>>>>>>
>>>>>>>> well, in read-only variables you don't need to specify the Set part
>>>>>>>> at all...
>>>>>>>> another thing I was about also was that specifying logic inside the
>>>>>>>> property is not a really good practice (it is always better to create 
>>>>>>>> some
>>>>>>>> private method and call it from inside, it saves time and it is better 
>>>>>>>> for
>>>>>>>> reusability as well).
>>>>>>>>
>>>>>>>
>>>>>>> How do you set the property then? By accessing the field directly? I
>>>>>>> don't like that. If you get using a property, you should set using a
>>>>>>> property.
>>>>>>>
>>>>>>> And there is NOTHING wrong with having some logic within the property
>>>>>>> - take a look through the source code of any major Open Source project 
>>>>>>> and
>>>>>>> see how they do it.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> And the exact thing I wanted to hear was this: "In general, I find
>>>>>>>> it good practice to use Get Properties (where they exist) as a 
>>>>>>>> default".
>>>>>>>> Yes, you find it a good practice, but it is not general good practice, 
>>>>>>>> you
>>>>>>>> should NOT say anyone that he SHOULD use it. It is also the reason why 
>>>>>>>> this
>>>>>>>> thread started... Bunch of programmers who uses this practice told him 
>>>>>>>> that
>>>>>>>> he SHOULD do it their way and he got confused... It is your good 
>>>>>>>> practice,
>>>>>>>> it is not my good practice, but I am not going to force you to do it 
>>>>>>>> my way
>>>>>>>> ;-)
>>>>>>>>
>>>>>>>> Sorry if I do look like being upset, the reason is that I am upset,
>>>>>>>> I have to attend LiveMeeting which is 2 hours in length and sound 
>>>>>>>> doesn't
>>>>>>>> work as it should...
>>>>>>>>
>>>>>>>> 2009/12/17 Jamie Fraser <[email protected]>
>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Yes, of course if property has some logic which checks the set
>>>>>>>>>> value or count the get value from something then yes, you should use 
>>>>>>>>>> the
>>>>>>>>>> property, but why to use it when it contains only eg get {return 
>>>>>>>>>> this.value}
>>>>>>>>>> ? and one more thing about your message:
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> In general, I find it good practice to use Get Properties (where
>>>>>>>>> they exist) as a default. They might only say
>>>>>>>>>
>>>>>>>>> return _abc;
>>>>>>>>>
>>>>>>>>> but then they might say
>>>>>>>>>
>>>>>>>>> if(x || y) { _abc = _service.Refresh(); } else { _abc =
>>>>>>>>> service.Load(_id); }
>>>>>>>>> return _abc;
>>>>>>>>>
>>>>>>>>> And they also might *change* from example 1 to example 2. If you
>>>>>>>>> consistently use the Get Property, if the logic changes, your code 
>>>>>>>>> will
>>>>>>>>> still work. Remember - another developer might change the logic 
>>>>>>>>> contained in
>>>>>>>>> the property but NOT check the the rest of the code for where it is 
>>>>>>>>> used.
>>>>>>>>>
>>>>>>>>> So, elsewhere in the class, if you say
>>>>>>>>>
>>>>>>>>> int a = _abc;
>>>>>>>>>
>>>>>>>>> Then your code breaks.
>>>>>>>>>
>>>>>>>>> But if  you say
>>>>>>>>>
>>>>>>>>> int a = PropertyABC;
>>>>>>>>>
>>>>>>>>> Then your code continues working. It is a safety net - win/win, if
>>>>>>>>> you will. If the property only returns _abc, then the compiler will 
>>>>>>>>> inline
>>>>>>>>> this to int a = _abc anyway, so there is no performance hit.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> -If the property is read-only, then there is a reason for this
>>>>>>>>>> (i.e. logic already exists internally to set the value of the 
>>>>>>>>>> underlying
>>>>>>>>>> field)
>>>>>>>>>> and that logic is? Sorry, but I don't quite understand that,
>>>>>>>>>> coding classes always means to create some its own logic and how 
>>>>>>>>>> does look a
>>>>>>>>>> logic to set the variable? Maybe this.variable = value? Oh no, sry, 
>>>>>>>>>> you
>>>>>>>>>> can't, you must use property for this... but property is read-only? 
>>>>>>>>>> Damn, so
>>>>>>>>>> there already MUST be some logic that sets it...
>>>>>>>>>> --that was test of some irony, don't get it personally ;-)
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> I don't really get what you mean here.
>>>>>>>>>
>>>>>>>>> In the case of a read-only variable, you want to prevent *external*
>>>>>>>>> classes from changing the value of the field. Therefore, you do 
>>>>>>>>> something
>>>>>>>>> like
>>>>>>>>>
>>>>>>>>>       public string Name
>>>>>>>>>       {
>>>>>>>>>          get
>>>>>>>>>          {
>>>>>>>>>             return _name;
>>>>>>>>>          }
>>>>>>>>>          private set
>>>>>>>>>          {
>>>>>>>>>             _name = value;
>>>>>>>>>          }
>>>>>>>>>       }
>>>>>>>>>
>>>>>>>>> And you use the property as normal.
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Reply via email to