title: What is the difference between a Pointer and a Handle
body: <p>I cannot say I have a strong C++ background so I hear Handle very often these days. I know what a Pointer is (which stores address of the memory location like reference) but I am not really sure what Handle is and what the differences are between these two. And a sample code in C# would be great if you can provide one.</p>
  
  <p>By the way I googled this terms however many people gave different explanations so I think I get the best one from SO.</p>
  
  <p><strong>EDIT:</strong></p>
  
  <p><strong>A quick heads-up for the other visitors:</strong> A handle is like a reference which points a resource. It can point at a memory address like a Pointer but Handle is more general term so it is more like a pseudo-pointer. A file is a good example for this. A file can have an ID which OS can understand and use to find the file. So Handle can hold this ID (which may or may not be a Memory Address) and when we pass this Handle in, OS can find the file easily.</p>
  
  <p>Please refer to answers below for more detailed information.</p>
  
  <p><strong>Edit:</strong></p>
  
  <p>All the answers under this question are awesome and very explanatory. I am having a hard time to select one of them to mark it as answer.</p>