您的位置:首页 > 编程语言 > C#

C# 一元操作符及重载

2017-10-12 20:17 218 查看
一元操作符:

+ - ! ~ ++ – 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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息