class Program
{
private string name;
public string Name
{
get { return name; }
set { name = value; }
}
public int value { set; get; }
//该对象是否可用:
public bool IsAvailable { set; get; }
public bool Idengyu { set; get; }
public bool Isdayudengyu { set; get; }
static void Main(string[] args)
{
Program OperA = new Program();
OperA.value = 88;
OperA.Name = "火星人";
Program operB = new Program();
operB.value = 33;
operB.Name = "地球人";
Program operC = OperA + operB;
//Console.WriteLine(operC.value);
operC.IsAvailable = OperA.value > operB.value;//重载下面的大于号 重载下面的对象符号 大于和小于都要成对出现;
operC.Idengyu = OperA.Name == operB.Name;
//Console.WriteLine("{0} {1} {2}", operC.Name, operC.value, operC.IsAvailable);//隐式自动调用,不用写方法名
Console.WriteLine(operC.Idengyu);
operC.Isdayudengyu = OperA.value >= operB.value;
Console.WriteLine(operC.Isdayudengyu);
Console.ReadKey();
}
//重载运算符+ 要求:1,方法修饰符为public;2,必须是静态的;
public static Program operator +(Program Oper1, Program Oper2)
{
Program newOper = new Program();
newOper.value = Oper1.value - Oper2.value;//+ - 成对出现;
newOper.Name = Oper1.Name + Oper2.Name;
return newOper;
}
//重载运算符的大于和小于
public static Program operator >(Program Oper1, Program Oper2)
{
Program newOper = new Program();
newOper.IsAvailable = Oper1.value > Oper2.value;
return newOper;
}
public static Program operator <(Program Oper1, Program Oper2)
{
Program newOper = new Program();
newOper.IsAvailable = Oper1.value > Oper2.value;
return newOper;
}
//重载等于 和不等于
public static Program operator ==(Program Oper1, Program Oper2)
{
Program newOper = new Program();
newOper.Idengyu = Oper1.Name == Oper2.Name;
return newOper;
}
public static Program operator !=(Program Oper1, Program Oper2)
{
Program newOper = new Program();
newOper.Idengyu = Oper1.Name != Oper2.Name;
return newOper;
}
//重载大于等雨 和小于等于
public static Program operator >=(Program oper1, Program oper2)
{
Program newOper = new Program();
//定义一个布尔的属性
newOper.Isdayudengyu = oper1.value >= oper2.value;
return newOper;
}
public static Program operator <=(Program oper1, Program oper2)
{
Program newOper = new Program();
//定义一个布尔的属性
newOper.Isdayudengyu = oper1.value <= oper2.value;//上面是重载符号 这里是实际返回的布尔值 比较运算符和加减乘除 和 ~ 、 !、++、 — 可以重载,其他不可以
return newOper;
}
public static void GetNum(int a, int b = 3, int c = 5)
{ //有赋值可穿或可不传
Console.WriteLine(a * b * c);
}
}
unity游戏开发-C#语言基础篇(重载运算符)
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 将写内容过程比较常用的内容片段备份一下,下面资料是关于C#演示用户定义的类如何能够重载运算符的内容。 using ...
- 运算符是告诉编译器执行特定数学或逻辑函数的符号。C语言内置运算符丰富,并提供以下类型的运算符 - 算术运算符 关系...