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 )
参数:
注意:
explicit 关键字用于声明必须使用强制转换来调用的用户定义的类型转换运算符。
static implicit operator target_type { source_type identifier }
参数:
注意:
implicit 关键字用于声明隐式的用户定义类型转换运算符。
static implicit operator target_type { source_type identifier }
注意:
示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WindowsFormsApplication1
{
public class EURO
{
/// <summary>
/// 变量表示类的实际数值
/// </summary>
private double valueEuro;
/// <summary>
/// 默认构造函数
/// </summary>
public EURO()
{
this.valueEuro = 0.0;
}
/// <summary>
/// 带参数的构造函数
/// </summary>
/// <param name="doubleEuro"></param>
public EURO(double doubleEuro)
{
this.valueEuro = Math.Round(doubleEuro,USD.DECIMAL_PLACES);
}
/// <summary>
/// 重写TOSTRING()方法
/// </summary>
/// <returns></returns>
public override string ToString()
{
return this.valueEuro.ToString();
}
//将一个EURO值乘上一个double值返回相乘后的EURO值
public static EURO operator *(EURO paraEuro1, double paraEuro2)
{
return new EURO(paraEuro1, paraEuro2);
}
//通过接收一个EURO值并返回一个DOUBLE值来允许一个EURO值明确地转化成一个DOUBLE值
public static explicit operator double(EURO paraEuro)
{
return paraEuro.valueEuro;
}
//通过接受一个double值并返回一个EURO值来允许一个Double值明确的转化成一个EURO值
public static explicit operator EURO(double paraEuro)
{
return new EURO(paraEuro);
}
}
}