title: When to use pointers in C#/.NET?
body: <p>I know C# gives the programmer the ability to access, use pointers in an unsafe context. But When is this needed?</p>
  
  <p>At what circumstances, using pointers becomes inevitable?</p>
  
  <p>Is it only for performance reasons?</p>
  
  <p>Also why does C# expose this functionality through an unsafe context, and remove all of the managed advantages from it? Is it possible to have use pointers without losing any advantages of managed environment, theoretically?</p>