一元操作符:
+ - ! ~ ++ – true false & sizeof()
可重载的一元操作符:
+ - ! ~ ++ – true false
1.先说明操作符的作用。
2.对可重载的操作符进行重载举例。
说明:
+:
一元 + 运算符是为所有数值类型预定义的。对数值类型进行一元 + 运算的结果就是操作数的值。
也就是数值的正数。
-:
一元 - 运算符是为所有数值类型预定义的。数值类型的一元 - 运算的结果是操作数的反数
也就是数值的负数。
!:
逻辑非运算符 (!) 是对操作数求反的一元运算符。为 bool 定义了该运算符,当且仅当操作数为 false 时才返回 true。
~:
~ 运算符对操作数执行按位求补运算,其效果相当于反转每一位。按位求补运算符是为 int、uint、long 和 ulong 类型预定义的
++:
增量运算符.
++x:先进行自增,后进行运算。
x++:先进行运算,后进行自增。
–:
减量运算符.
–x:先进行自减,后进行运算。
x–:先进行运算,后进行自减。
true:
当由用户定义的类型定义时,返回 bool 值 true 以表示真,否则返回 false。
false:
&:
返回其操作数的地址
sizeof():
用于获取 值类型 的字节大小.
sizeof 运算符仅适用于值类型,而不适用于引用类型。
从 C# 2.0 版开始,将 sizeof 应用于预定义类型不再要求使用不安全模式。
重载操作符说明:
1.重载一元操作符+或者-时,不需要重载-或+。
2.重载一元操作符++或者–时,不需要重载–或++。
3.操作一元操作符false或true时,必须重载true或false;即true和false必须同时重载。
//汽车类,设定速度操作180后为假(报废),反之为真(未报废)
public struct Car
{
//速度
public int Speed { get; set; }
//方向 1 正向 -1 逆向
public int Direction { get; set; }
//重载 一元操作符 - 表明汽车逆向(倒车)行驶
public static Car operator -(Car operatorCar)
{
operatorCar.Direction=-1;
return operatorCar;
}
//重载 一元操作符 + 表明汽车正向行驶
public static Car operator +(Car operatorCar)
{
operatorCar.Direction = 1;
return operatorCar;
}
//加速 一元操作符++ 加速
public static Car operator ++(Car operatorCar)
{
//根据实际情况进行实现
operatorCar.Speed++;
return operatorCar;
//return new Car() { Speed = operatorCar.Speed + 1, Direction = operatorCar.Direction };
}
//重载 一元操作符-- 减速
public static Car operator --(Car operatorCar)
{
//根据实际情况进行实现
operatorCar.Speed--;
return operatorCar;
//return new Car() { Speed = operatorCar.Speed - 1, Direction = operatorCar.Direction };
}
//重载 一元操作符true
public static bool operator true(Car operatorCar)
{
return operatorCar.Speed < 180;
}
//重载 一元操作符false
public static bool operator false(Car operatiorCar)
{
return operatiorCar.Speed > 180;
}
//重载 一元操作符! 逻辑非
public static bool operator !(Car operatiorCar)
{
return !(operatiorCar.Speed > 180);
}
}