C#中操作符,显示和隐式转换
2014-11-06 11:46
375 查看
// 定义一个人民币结构。数据类型转换的语法对于结构和类是一样的
public struct RMB
{
// 注意:这些数的范围可能不能满足实际中的使用
public uint Yuan;
public uint Jiao;
public uint Fen;
public RMB(uint yuan, uint jiao, uint fen)
{
if (fen > 9)
{
jiao += fen / 10;
fen = fen % 10;
}
if (jiao > 9)
{
yuan += jiao / 10;
jiao = jiao % 10;
}
this.Yuan = yuan;
this.Jiao = jiao;
this.Fen = fen;
}
public override string ToString()
{
return string.Format("¥{0}元{1}角{2}分", Yuan, Jiao, Fen);
}
// 一些操作
//r1 = new RMB(1, 6, 13);
// 其实当时其他人都已经交过了,他们总共交了:
// r2 = new RMB(46, 9, 3);
// 那么加上我的就是:
// r3 = r1 + r2;
public static RMB operator +(RMB rmb1, RMB rmb2)
{
return new RMB(rmb1.Yuan + rmb2.Yuan, rmb1.Jiao + rmb2.Jiao, rmb1.Fen + rmb2.Fen);
}
// 隐式转换
//float f = r3;
public static implicit operator float(RMB rmb)
{
return rmb.Yuan + (rmb.Jiao / 10.0f) + (rmb.Fen / 100.00f);
}
// 显式转换
//(RMB)f
public static explicit operator RMB(float f)
{
uint yuan = (uint)f;
uint jiao = (uint)((f - yuan) * 10);
uint fen = (uint)(((f - yuan) * 100) % 10);
return new RMB(yuan, jiao, fen);
}
}
public struct RMB
{
// 注意:这些数的范围可能不能满足实际中的使用
public uint Yuan;
public uint Jiao;
public uint Fen;
public RMB(uint yuan, uint jiao, uint fen)
{
if (fen > 9)
{
jiao += fen / 10;
fen = fen % 10;
}
if (jiao > 9)
{
yuan += jiao / 10;
jiao = jiao % 10;
}
this.Yuan = yuan;
this.Jiao = jiao;
this.Fen = fen;
}
public override string ToString()
{
return string.Format("¥{0}元{1}角{2}分", Yuan, Jiao, Fen);
}
// 一些操作
//r1 = new RMB(1, 6, 13);
// 其实当时其他人都已经交过了,他们总共交了:
// r2 = new RMB(46, 9, 3);
// 那么加上我的就是:
// r3 = r1 + r2;
public static RMB operator +(RMB rmb1, RMB rmb2)
{
return new RMB(rmb1.Yuan + rmb2.Yuan, rmb1.Jiao + rmb2.Jiao, rmb1.Fen + rmb2.Fen);
}
// 隐式转换
//float f = r3;
public static implicit operator float(RMB rmb)
{
return rmb.Yuan + (rmb.Jiao / 10.0f) + (rmb.Fen / 100.00f);
}
// 显式转换
//(RMB)f
public static explicit operator RMB(float f)
{
uint yuan = (uint)f;
uint jiao = (uint)((f - yuan) * 10);
uint fen = (uint)(((f - yuan) * 100) % 10);
return new RMB(yuan, jiao, fen);
}
}
相关文章推荐
- C#显示与隐式转换操作符
- C#的隐式和显示类型转换
- C#中隐式类型转换和显示类型转换
- c#自定义类型的转换方式operator,以及implicit(隐式)和explicit (显示)声明的区别
- C#隐式转换和显示转换举例--C#基础
- C#基础:类型转换(隐式转换和显示转换)
- C#中隐式类型转换和显示类型转换 .
- C# 转换运算符:implicit(隐式),explicit(显示)
- C#的隐式和显示类型转换
- C#中隐式和显示类型转换
- C# 转换运算符:implicit(隐式),explicit(显示)
- c#中隐式转换和显示转换(强制转换)的区别
- c#隐式转换显示转换
- C#_lesson1_显示转换和隐式装换
- C#的隐式和显示类型转换
- C#隐式和显示类型转换
- C# int类型显示和隐式转换的比较
- C#的隐式和显示类型转换
- C# 显示转换与隐式转换_记录
- C#之隐式与显示类型转换