not pointer in C# unless you want to operate in the unsafe mode, only certain operators can be overloaded, not including assignment operator, and they must be declared "public static", seeOverloadable Operators
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csref/html/vclrfoverloadableoperators.aspalso see
Operator Overloading Tutorial
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csref/html/vcwlkoperatoroverloadingtutorial.asp
public class Node<T>
{
T data;
Node<T> next; Node(){ next=null;} //no need, since next is automatially set to null Node(T item, Node<T> ptrnext) { data = item; next = ptrnext; }        //the following are invalid in C#, since assignment operator cannot be overloaded
/*void operator =(T item)
{  data=item; } void operator =(Node<T>* p)
{  data=p->data;  } *//*
         public static implicit operator Node<T>(T item)
{
return new Node<T>(item, null);
}
*/
public static bool operator == (Node<T>p, T item)
{  if (item.Equals(p.data)) return true; else return false;  } public static bool operator != (Node<T>p, T item)
{  return !(p==item);  } public static bool operator ==(Node<T> p1, Node<T> p2)
{  if (p1.data.Equals(p2.data)) return true; else return false;  } public static bool operator !=(Node<T> p1, Node<T> p2)
{  return !(p1 == p2);  }}