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. >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> >
