番外篇 C#
作者:佚名 来源:xp下载站 时间:2023-01-24 11:32
关注我,为您分享C#技术实现
运算符重载
运算符重载的主要用处是扩展运算符的运算能力
运算符其实也是一种特殊的方法,只不过参数列表的呈现有些不同
高仿Convert类的转换:
无论什么数据,只要调用这个方法,都可变为其增加一个---的字符串
代码示例:
int i = 456;
label1.Text = Convert.ToString(i);
public static class Convert
{
public static string ToString(int i)
{
string str = "----输入的是:" i.ToString() "----实际不一样";
return str;
}
}
C# 重载过的 号:
代码示例:
int a = 1;
int b = 2;
int c = a b;
label2.Text = c.ToString();
string q = "aaa";
string w = "bbb";
label3.Text = q w;
Ren r1 = new Ren("男");
Ren r2 = new Ren("女");
Ren r3 = r1 r2;
label4.Text = r3.Sex;
public class Ren
{
public string Sex
{ get; set; }
public Ren(string s)
{
this.Sex = s;
}
public static Ren operator (Ren r1, Ren r2)
{
Ren r = null;
if (r1.Sex == "男" && r2.Sex == "女")
{
r = new Ren("一个男孩或一个女孩");
}
else if (r1.Sex == "男" && r2.Sex == "男")
{
r = new Ren("不肯能");
}
else if (r1.Sex == "女" && r2.Sex == "女")
{
r = new Ren("奇了怪勒");
}
return r;
}
}
运行结果:
规则 | |
可被重载 | |
一元运算符 | ,-,!,~, ,--,true,false 注意:true和false 运算符必须成对重载 |
二元运算符 | ,-,*,/,%,&,|,^,<<,>> |
关系运算符 | ==,!=,<,>,<=,>= 注意:必须成对重载 |
不可重载的 | |
条件运算符 | &&,|| |
数组运算符 | [],但可以定义索引器 |
转换运算符 | (),但可以定义隐式类型转换和显示类型转换运算符。 |
赋值运算符 | =,-=,*=,/=,%=,&=,|=,^=,<<=,>>=,但重载相关的二元运算符,它们也就具备了同样的新功能 |
其他运算符 | =,.,?:,->,new,is,sizeof,typeof |