|
Tristan Rhodes wrote: While i understand the differenced between the operator and the Equals method, is there a rule of thumb for when to use them in code?
If you did understand it, you wouldnt be asking
== and ReferenceEquals is more closely related, and == does ReferenceEquals if not overriden.
You can see the effect with structs/valuetypes, create 2 structs of the same type, and go through all 6 permutations of equality tests.
|
|
|
|
|
Ok, if == is more closely equated to ReferenceEquals, then >=, <= , >, < are all value operators, and == is a reference comparison operator and doesn't relate to the other equality operators at all?
I mean, i see the following quite regularly:
If (myDate.Equals(defaultDate) || myDate < minDate || myDate > maxDate)
throw new ArgumentOutOfRangeException("myDate");
that does cause me to do a double take, as i would expect it to be
If (myDate == defaultDate || myDate < minDate || myDate > maxDate)
throw new ArgumentOutOfRangeException("myDate");
Hence why i ask. What's the rule of thumb? In this instance both work the same way.
Cheers
-------------------------------
Carrier Bags - 21st Century Tumbleweed.
|
|
|
|
|
Object.Equals is a virtual method (and the static Object.Equals(a,b) just does a few null checks and calls a.Equals(b)).
Operators are static.
Virtual methods are called using dynamic dispatch - so Object.Equals always does a value comparison if supported by the runtime types.
However, the == operator is called using static dispatch - if you compare two string variables, it does a value comparison, but if you compare two object variables, it does a reference comparison - even if the object variables contain string objects!
|
|
|
|
|
Object.Equals() should be used whenever you want to check Identity not equity.
Reference type equals returns true if both objects are pointing to same memory location. It is not going to return you true if both object have identical values(except string type). So Object.Equals() checks for Identity not equality.
But if you are using Equals method on value types it check for Equility not identity
So When you want to check Identity use Equals method
But when you want to check for equility use ==
Be aware while using Equals method with values types as it may have performance issue while boxing the values types sp better to go with ==
Addition to this Object.Equals method provides Comparison type paramter where you can ignore case sensitivity
Please have some thoughts on this question so that i can also get some feedback
Thanks and Regards
Sandeep
If If you look at what you do not have in life, you don't have anything,
If you look at what you have in life, you have everything... "
Check My Blog
|
|
|
|
|
Just wondering whether .NET is required for .NET framework? I checked it requires XP SP2. Now I am not sure whether current updates of SP2 automatically installs .NET or not because we have to decide whether we go for .NET based solution or not and only stat which I could grab that majority of users are using IE7 for browsing.
|
|
|
|
|
Adnan Siddiqi wrote: .NET is required for .NET framework?
What ?
Adnan Siddiqi wrote: I checked it requires XP SP2
Yes.
Adnan Siddiqi wrote: Now I am not sure whether current updates of SP2 automatically installs .NET
I don't think so.
Christian Graus
Please read this if you don't understand the answer I've given you. If you're still stuck, ask me for more information.
|
|
|
|
|
err I mean whether .net is required for IE7 installation.
|
|
|
|
|
Adnan Siddiqi wrote: err I mean whether .net is required for IE7 installation.
No.
|
|
|
|
|
No.
SSK.
Anyone who says sunshine brings happiness has never danced in the rain.
|
|
|
|
|
Adnan Siddiqi wrote: Just wondering whether .NET is required for .NET framework?
I don't see why one needs the other, its not like they share the same name/purpose/structure/meaning of existence.
Regards,
Thomas Stockwell
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
Visit my homepage Oracle Studios
Discounted or Free Software for Students:
DreamSpark - downloads.channel8.msdn.com
MSDN Academic Alliance - www.msdnaa.com
|
|
|
|
|
how can use filesystemwatcher to check when a file is drop or open in ftp folder
|
|
|
|
|
You can't - not directly with ftp. There are lots of tricks you could do, but a filesystemwatcher isn't going to help because it doesn't work with FTP.
|
|
|
|
|
I searched all over for the answer to this problem - and finally found it
Thought i would post it in case anyone else is suffering with it
The class derived from Service base must have the property
CanHandleSessionChangeEvent = false
Otherwise Service Manager/Start Service will hang
then give the
message "Service would not start in a timely fashion"
Bill in PA/USA
|
|
|
|
|
Is that documented somewhere?
It always works for me...
Mark
|
|
|
|
|
What was the original problem?
|
|
|
|
|
Hi all,
I have a vc++.net application that draws a graph at runtime after a certain time interval.My prob is that while the graph is being drawn on the GUI,if I open another window or any message box comes over the GUI,that particular area of the graph gets erased and is not redrawn.
Please help me.I am a beginner in vc++.net.
Any help or suggestion is welcome.
Thanks,
Jyoti
|
|
|
|
|
Member 4744683 wrote: I have a vc++.net application that draws a graph
How?
Member 4744683 wrote: Please help me.I am a beginner in vc++.net.
Are you also a beginner in communications? Think about what you are doing here using this forum. You are asking people to freely use their time to help you. At the very least you should make an effort to communicate your problem clearly, completely and succinctly.
Member 4744683 wrote: draws a graph at runtime after a certain time interval
So based on that one could guess that you do the drawing in a timer event handler. Drawing needs to be done in response to Draw events or WM_PAINT messages, not timer events. Also a Picture control can be used. The Picture control would then do the drawing in response to the Draw events. To use a Picture control you would create an Image and draw into the image then assign the image to the Picture control.
good luck
led mike
|
|
|
|
|
I dont know if you were in a bad mood or had a quarrel with someone but your reply was rude.If you didnt intend to answer it you shd ve kept quiet.Y on earth did u take the pain of typing those rude words?
yours was not an answer but a criticism.i dnt think u r any good in vc++ or .NET.
i hope u wont reply to me again.
good luck to u too mr.mike.
|
|
|
|
|
His reply was reasonable. Your question was impossible to answer, that's why you got no replies. Take his advice and try asking in a way that gives people the info they need to help you.
Christian Graus
Please read this if you don't understand the answer I've given you. If you're still stuck, ask me for more information.
|
|
|
|
|
Yes I accept that.But I am not complaining that I didnt get any replies but the reply that I got was rude.Thats all I am saying.The reply cud ve been better and polite.
I do agree my question had very little information on which ppl could base their replies.
Rudeness is the fact I was upset about.
Anyways I will try to post it with more details.
Jyoti
|
|
|
|
|
Member 4744683 wrote: If you didnt intend to answer it you shd ve kept quiet.
Did you even read my post? What do you call this quote from my post if it is not an attempt to help?
led mike wrote: So based on that one could guess that you do the drawing in a timer event handler. Drawing needs to be done in response to Draw events or WM_PAINT messages, not timer events. Also a Picture control can be used. The Picture control would then do the drawing in response to the Draw events. To use a Picture control you would create an Image and draw into the image then assign the image to the Picture control.
Here's a tip. Don't smoke crack when you are posting requests for help in internet forums.
Here's another tip. Tell me to be quiet one more time if you want to see what rude really looks like.
led mike
|
|
|
|
|
Yes I did read your post.But you had already done the harm.
First you write rude words.then you attempt to erase it by trying to write some help.But one wont forget wht u did initially.
Even after telling you not to reply to my post,you ve stl done tht.....
I can understand that your quarrel with whomsoever is stl not over.So I can see you fuming with my reply....hota hai....
May be you know the highest peak of being rude to someone.....May be you ve been brought up tht way.....but I dnt give importance to ppl who dnt knw to speak politely.I cant wait n advice them whoever behaves tht way.I ve more imp work to do.
Now even if you post anything I am not going to get it.Because I knw how to prevent it.
Good luck for your future.Hope you keep quiet this time
|
|
|
|
|
F*** off a**hole
led mike
|
|
|
|
|
Succinct.
|
|
|
|
|
At least I'm good at something!
led mike
|
|
|
|