运算符重载,在C++里我已经学习过,不过对于这个概念我还是有那么一点点模糊,而且在C#里它有更严格的要求。关于运算符的重载,使用operator来指明即将要重载的运算符,后面是参数表,我自己编写了一个简单的C#代码来简要的说明C++中的Cstring,这个过程可能你会觉得有点多余。
class Cstring
{
string text;
public string Text// 属性查看器,在C++里是没有这个概念的,用于获取或设置某个成员
{
get;
set;
}
public Cstring()// 构造函数
{
Text = null;
}
public Cstring(string str)// 带一个参数的构造函数
{
Text = str.ToString();
}
public static Cstring operator +(Cstring lhs, Cstring rhs)// 连接字符串
{
Cstring str;
str = new Cstring();
str.Text = lhs.Text;
str.Text += rhs.Text;
return str;
}
public static Cstring operator *(Cstring lhs, int mul)// 复制字符串
{
Cstring str;
str = new Cstring();
while(mul!=0)
{
str.Text += lhs.Text;
mul--;
}
return str;
}
}
运算符的重载大概意思也就是返回(生成)一个新对象,并将重载运算符当作一个方法(函数)来看待。我是这么理解的。
|