運算符重載,在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;
}
}
運算符的重載大概意思也就是返回(生成)一個新對象,并將重載運算符當作一個方法(函數)來看待。我是這么理解的。
|