C# operator关键字
来源:互联网 发布:淘宝上的药是正品吗 编辑:程序博客网 时间:2024/05/14 13:31
operator 关键字用于在类或结构声明中声明运算符。运算符声明可以采用下列四种形式之一:
public static result-type operator unary-operator ( op-type operand )
public static result-type operator binary-operator ( op-type operand, op-type2 operand2 )
public static implicit operator conv-type-out ( conv-type-in operand )
public static explicit operator conv-type-out ( conv-type-in operand )
参数:
result-type 运算符的结果类型。
unary-operator 下列运算符之一:+ - ! ~ ++ — true false
op-type 第一个(或唯一一个)参数的类型。
operand 第一个(或唯一一个)参数的名称。
binary-operator 其中一个:+ - * / % & | ^<< >> == != > < >=< =
op-type2 第二个参数的类型。
operand2 第二个参数的名称。
conv-type-out 类型转换运算符的目标类型。
conv-type-in 类型转换运算符的输入类型。
注意:
前两种形式声明了用户定义的重载内置运算符的运算符。并非所有内置运算符都可以被重载(请参见可重载的运算符)。op-type 和op-type2中至少有一个必须是封闭类型(即运算符所属的类型,或理解为自定义的类型)。例如,这将防止重定义整数加法运算符。
后两种形式声明了转换运算符。conv-type-in 和 conv-type-out中正好有一个必须是封闭类型(即,转换运算符只能从它的封闭类型转换为其他某个类型,或从其他某个类型转换为它的封闭类型)。
运算符只能采用值参数,不能采用 ref 或 out 参数。
C#要求成对重载比较运算符。如果重载了==,则也必须重载!=,否则产生编译错误。同时,比较运算符必须返回bool类型的值,这是与其他算术运算符的根本区别。
C# 不允许重载=运算符,但如果重载例如+运算符,编译器会自动使用+运算符的重载来执行+=运算符的操作。
运算符重载的其实就是函数重载。首先通过指定的运算表达式调用对应的运算符函数,然后再将运算对象转化为运算符函数的实参,接着根据实参的类型来确定需要调用的函数的重载,这个过程是由编译器完成。
任何运算符声明的前面都可以有一个可选的属性(C# 编程指南)列表。
using System;
using System.Collections.Generic;
using System.Text;
namespace OperatorOverLoading
{
}
- C# operator关键字
- C#关键字operator
- C#关键字operator
- C# operator关键字
- C#关键字operator的用法
- C# operator 关键字的用法
- C#学习笔记-operator关键字
- 关键字-operator
- C# 参考之转换关键字:operator、explicit与implicit
- C# 参考之转换关键字:operator、explicit与implicit
- C# 参考之转换关键字:operator、explicit与implicit
- C#使用operator关键字实现操作符重载
- C# 参考之转换关键字:operator、explicit与implicit
- C# 参考之转换关键字:operator、explicit与implicit
- C# 参考之转换关键字:operator、explicit与implicit
- C# 参考之转换关键字:operator、explicit与implicit
- C# 参考之转换关键字:operator、explicit与implicit
- C# - 使用operator关键字实现操作符重载
- configure: error: APR not found. Please read the documentation
- Android显示单位
- 使用insert语句时需注意的几点
- GTK+透明窗口
- 通过HTTP协议利用VC++上传图片至服务器
- C# operator关键字
- linux中mmap系统调用原理分析与实现
- 选择32位单片机简化开发工作
- 对复选框的限制
- 第10章 网络编程 02_TCP_Socket_1
- (0903)2013华为校园招聘机试题
- /etc/hosts文件简介
- 《 乔布斯自述 》
- HDU 2187 悼念512汶川大地震遇难同胞——老人是真饿了