首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

*关于自定义类型转换*该如何处理

2013-08-16 
***关于自定义类型转换***我自己写了下面的类型转换,但是编译的时候一直报错,有高手知道原因吗?我感觉代码

***关于自定义类型转换***
我自己写了下面的类型转换,但是编译的时候一直报错,
有高手知道原因吗?我感觉代码没有问题啊

c#代码


using System;

struct Currency
{
public uint Dollars;
public ushort Cents;

public Currency(uint Dollars,ushort Cents)
{
this.Dollars = Dollars;
this.Cents = Cents;
}

public override string ToString()
{
return string.Format("${0}.{1,-2:00}",Dollars,Cents);
}

public static implicit operator float(Currency value)
{
return value.Dollars + (value.Cents/100.01);
}
}

public class Test
{
public static void Main()
{
Currency Balance = new Currency(10,50);
float D = Balance;
}
}


编译的时候,就报错
Currency.cs(21,10): error CS0266: Cannot implicitly convert type 'double' to
        'float'. An explicit conversion exists (are you missing a cast?) C#
[解决办法]

public static implicit operator float(Currency value)
{
   //return value.Dollars + (value.Cents/100.01);
   return value.Dollars + (value.Cents/100.01f);
}

热点排行