- ·上一篇内容:老师点名遇到不认识的字
- ·下一篇内容:微软云存储品牌将由SkyDrive变更为OneDrive
一元运算符的重载
运算符重载允许为运算指定用户定义的运算符实现,重载的运算符可以是一元运算符(即只有一个操作数的运算符),也可以是二元操作符(即有两个操作数的运算符)。本文中暂时介绍一元运算符重载的方法。
可重载的一元运算符有:
+ - ! ~ ++ -- true false
一元运算符 true 和 false 要求成对的声明。如果类只声明了这两个运算符的其中一个而没有声明另一个,将发生编译时错误。
另外需要注意的是,重载时只能对已有的运算符进行重载,不能创造新的运算符。
一元运算符重载的语法格式如下:
public static 类类型 operator 要重载的一元运算符(类类型 变量名称) { 重载实现; }
下面使用一个例子来说明具体过程:
using System;
namespace OverloadSingile
{
class Student
{
string name;
int age;
int height;
public Student(string sn, int a, int h)
{
name = sn; age = a; height = h;
}
public static Student operator ++(Student s)
{
s.age++; s.height += 10; return s;
}
public void ShowInfo()
{
Console.WriteLine("{0}的年龄为{1},身高为{2}", name, age, height);
}
}
class Test
{
static void Main()
{
Student wangHao = new Student("王浩", 21, 172);
wangHao.ShowInfo();
wangHao++;
wangHao.ShowInfo();
}
}
}
运行结果如下:
从上面的例子可以分析出,运算符重载实质上是方法重载的一种特殊情形。
其它参考知识:
(1)C#中的运算符与表达式
(3)C#常用运算符详解
分享