C# operator 关键字的用法
operator 只要是运算符都能重载
operator 关键字的主要作用是用来重载运算符的,还可以用于类或结构中类型的自定义转换。
下面看个例子
- class Feige
- {
- //定义两个全局变量
- int a, b;
- //声明带两个参数的构造函数
- public Feige(int a, int b)
- {
- this.a = a;
- this.b = b;
- }
- //重载加法运算符+
- public static Feige operator +(Feige f, Feige g)
- {
- return new Feige(f.a + g.a, f.b + g.b);
- }
- //重载乘法运算符*
- public static Feige operator *(Feige f, Feige g)
- {
- return new Feige(f.a * g.a, f.b * g.b);
- }
- //自定义转换类型
- public static implicit operator int(Feige f)
- {
- return (int)(f.a * f.b);
- }
- }
- //执行构造函数
- Feige fei = new Feige(2, 5);
- //执行构造函数
- Feige ge = new Feige(3, 6);
- int d = (int)(fei + ge);//调用运算符+函数
- int e = (int)(fei * ge);//调用运算符*函数
- //两对象加法操作结果是:55
- richTextBox1.Text += "两对象加法操作结果是:" + d + "\n";
- //两对象乘法操作结果是:180
- richTextBox1.Text += "两对象乘法操作结果是:" + e + "\n";
C# operator 关键字的用法的更多相关文章
- [转载]C#中as和is关键字的用法
这篇文章主要介绍了C#中as和is关键字的用法的相关资料,需要的朋友可以参考下. 原文链接:http://www.jb51.net/article/80944.htm#comments 在程序中,进 ...
- C++ 友元(friend关键字)、类中的重载、操作符重载(operator关键字)
C++ 中友元的用法: 1.在类中使用friend关键字声明 2.类的友元可以是其它类或者具体函数 3.友元不是类的一部分 4.友元不受类中访问级别的限制 5.友元可以直接访问具体类中的所有成员. 友 ...
- C++中typename关键字的用法
我在我的 薛途的博客 上发表了新的文章,欢迎各位批评指正. C++中typename关键字的用法
- java中synchronized关键字的用法
在java编程中,经常需要用到同步,而用得最多的也许是synchronized关键字了,下面看看这个关键字的用法. 因为synchronized关键字涉及到锁的概念,所以先来了解一些相关的锁知识. j ...
- __declspec关键字详细用法
__declspec关键字详细用法 __declspec用于指定所给定类型的实例的与Microsoft相关的存储方式.其它的有关存储方式的修饰符如static与extern等是C和C++语言的ANSI ...
- Objec类和final关键字的用法
一.在继承中,子类继承父类,那父类继承谁呢,java中如果类没有指定继承谁,那么就默认继承Object类,object类是所有对象的直接或者间接的父类,根类,或者叫做基类,它里面定义的功能所有的对象都 ...
- yield关键字的用法
在上一篇文章中,说了下foreach的用法,但是还是比较复杂的,要实现接口才能进行遍历,有没有简单些的方法呢?答案是肯定的.且看下面. yield关键字的用法: 1.为当前类型添加一个任意方法,但是要 ...
- c++ __declspec关键字详细用法
c++ __declspec关键字详细用法 __declspec用于指定所给定类型的实例的与Microsoft相关的存储方式.其它的有关存储方式的修饰符如static与extern等是C和C++语言的 ...
- Java的static和final关键字的用法
static关键字的用法 static的意思是"'静态的",在java里面可用于修饰属性和方法. static关键字的应用应注意以下几种情形: 1.static作用于某个字段,一个 ...
随机推荐
- Scanner对象
Scanner对象 通过Scanner类来获取用户的输入. 使用需导入 java.util.Scanner 包. 基本语法: Scanner s = new Scanner(System.in); n ...
- 邻居子系统 arp 状态图
- linux系统中离线安装python3.7过程记录
最近公司新弄来一台linux redhat 4.4.7服务器,准备在上面离线安装python3.7,安装过程中出现一些问题,特此记录下来. 首先在python官网上下载了 Python-3.7.3. ...
- 《GNU_makefile》——第八章 内嵌函数
函数可以带参数,函数的展开方式和变量展开一样,函数的返回结果替换调用函数的文本. 1.函数的调用 $(FUNCTION ARGUMENTS) 或者: ${FUNCTION ARGUMENTS} FUN ...
- du查看的目录大小与df查看的大小不同的时候用lsof查找
首先MAN一下两个命令,看一下解释的区别: du - estimate file space usage df - report file system disk space usage du估计文件 ...
- Linux上Mysql数据库 用户权限控制
Linux安装mysql 点我直达 Mysql限制root用户ip地址登录 修改mysql库里边的user表: update mysql.user set host='localhost' where ...
- javaScript高级程序设计.pdf && 你不知道的JavaScript
转: JavaScript高级程序设计 链接:https://pan.baidu.com/s/1iRQ8FjpJqutZJzgdJ8ZBKA 提取码:ndnp 你不知道的JavaScript 链接:h ...
- MOOC JAVA笔记
MOOC JAVA笔记 1.基础了解 JDK是开发人员安装的,它提供了开发java程序的必须工具 JRE是普通用户安装的,它提供了java的运行环境 JVM是java虚拟机运行程序的核心 2.程序的移 ...
- IDEA “Cannot resolve symbol” 解决办法
IDEA 无法识别同一个 package 里的其他类,将其显示为红色,但是 compile 没有问题.鼠标放上去后显示 "Cannot resolve symbol XXX",重启 ...
- burp使用
只拦截特定网站数据包 我们以只拦截"www.baidu.com"为例 点击"Add"--布尔运算选择"And"--匹配类型选择"D ...