标签:
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 explicit operator target_type { source_type identifier }
参数:
注意:
implicit 关键字用于声明隐式的用户定义类型转换运算符。
static implicit operator target_type { source_type identifier }
注意:
示例:
以下是一个综合示例,简要展示用法。如要更具体细节的了解,请参阅MSDN Library。
// keywords_operator.cs
/*
控制台输出:
r3 = ¥48元6角6分
float f = 48.66
r4 = ¥48元6角5分
*/我们会发现r4结果少了一分钱!这是因为在:
uint fen = (uint)(((f - yuan) * 100) % 10);这句中,在将float转换为uint时发生了圆整错误(这与计算机以二进制存储有关)。解决这个错误,我们可以使用System.Convert类中用于处理数字的静态方法:
uint fen = Convert.ToUInt32(((f - yuan) * 100) % 10);不过使用System.Convert处理会有些性能的损失。
C# 参考之转换关键字:operator、explicit与implicit
标签:
原文地址:http://www.cnblogs.com/ithuo/p/5598378.html