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); }}
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); }}
解决方案 »
- 有没有更简单的算法呢?
- 关于ACCESS UPDATE时更新值过多无法正常执行的问题
- 生成日志文件写入日志文件写入万条后报错文件“logfile.txt”正由另一进程使用,因此该进程无法访问此文件。
- 客户端判断服务端文件是否完整,该文件正在被上传中
- 完全最小二乘法的源码,300分
- ListView点击排序的问题
- 请教:怎么知道一个方法是Invoke调用的还是直接调用的?
- new 操作符的疑问......,在线恭候......
- 如何更改自定义控件的图标
- !!!!!!!!!!!!!!!高手请诊断一下!!!!!!
- 如何用程序来滚动滚动条?
- richTextBox的拖放问题,它的拖放事件我怎么没看到,TextBox都有一个拖放类的事件
我明白了!