c#语法基础(2)——运算符重载
2015-05-14 22:22
232 查看
c#允许用户定义的类型,通过使用operator关键字定义静态成员函数来重载运算符
下面来看一个例子:
我们需要+、-实现两个虚数相加或相减,使用下面的方法重载+、-运算符
运算符重载的声明方式和方法的声明方式相同,但operator关键字告诉编译器它实际上是运算符重载。
本例中
表示的重载运算符“+”是全局静态的返回值是ComplexNumber类型,输入参数为两个ComplexNumber型变量,返回值仍为ComplexNumber型,
返回的操作是调用ComplexNumber类中的构造器和ToString方法。
其中implicit表示隐形类型转换,将d由double型转换成ComplexNumber型。
是一种强制类型转换形式,意思是强制转换成double型
下面来看一个例子:
public class ComplexNumber { private int real; private int imaginary; //构造器 public ComplexNumber(int r, int i) { real = r; imaginary = i; } //重载ToString方法,用来显示ComplexNumber public override string ToString() { if (imaginary >= 0) return (System.String.Format("{0}+{1}i", real, imaginary)); else return (System.String.Format("{0}-{1}i", real, imaginary)); } }
我们需要+、-实现两个虚数相加或相减,使用下面的方法重载+、-运算符
//重载+运算符 public static ComplexNumber operator+(ComplexNumber lhs,ComplexNumber rhs) { return new ComplexNumber( lhs.real+rhs.real,lhs.imaginary+rhs.imaginary); } //重载-运算符 public static ComplexNumber operator-(ComplexNumber lhs,ComplexNumber rhs) { return new ComplexNumber( lhs.real-rhs.real,lhs.imaginary-rhs.imaginary); }
运算符重载的声明方式和方法的声明方式相同,但operator关键字告诉编译器它实际上是运算符重载。
本例中
public static ComplexNumber operator+(ComplexNumber lhs,ComplexNumber rhs)
表示的重载运算符“+”是全局静态的返回值是ComplexNumber类型,输入参数为两个ComplexNumber型变量,返回值仍为ComplexNumber型,
返回的操作是调用ComplexNumber类中的构造器和ToString方法。
public static implicit operator ComplexNumber (double d)
其中implicit表示隐形类型转换,将d由double型转换成ComplexNumber型。
public double D (get;set;)
是一种强制类型转换形式,意思是强制转换成double型
相关文章推荐
- 【C#基础】【语法01】课堂作业题 01-07
- 自学笔记二:C#语法基础 数据类型之值类型
- C#基础语法
- C#快速入门笔记(1)——基础语法
- Python3 与 C# 基础语法对比(String专栏)
- C#语法之Linq查询基础一
- C#基础语法:as 运算符使用实例
- c# 语法基础
- C# 基础·语法篇
- C#语法之运算符重载
- 第一讲——C#基础语法
- java与C#的基础语法区别--持续更新
- C#基础之“==”运算符重载
- Unity 中 C# 的基础语法 以及 常用功能
- C#_01_基础语法
- c#与wpf的一些基础语法问题(摘用)
- 1、C#语法基础知识
- C#语法基础-定义一个矩形对象
- C#语法基础巩固
- c# 基础语法总结(实例)