浮点枚举和聚合类

时间:2013-08-11 08:44:35

标签: c# .net

我必须创建walet类,其中我计算它有多少coins,所以:

enum Coins {
    OneCent = 0.01f,
    FiveCent = 0.05f,
    OneDollar = 1.0f
}

public class RowQuantity<T> {
    public T entity;
    public int Quantity;
}

和我的walet:

public class Walet {
    public List<RowQuantity<Coins>> CoinsCash;
    public Walet() {
        this.CoinsCash.Add(new RowQuantity<Coins> { entity = Coins.OneCent, Quantity = 25 });
    }
}

问题出现在这里:

我不能让enum浮动值=&gt;所以,我必须将它声明为静态类。

public static class Coins {
    public const float OneCent = 0.01f;
    public const float FiveCent = 0.05f;
    public const float OneDollar = 1.0f;
}

但是通过这种方式,我无法将static类型作为通用类的instance传递。

那么,我怎么能意识到这一点? (列出浮点枚举值的数量)

1 个答案:

答案 0 :(得分:2)

首先,为了避免舍入问题,您需要使用decimal。其次,您需要使它成为一个实例类,显示一些OneCentFiveCentOneDollar的静态属性,如下所示:

public sealed class Coins
{
    private decimal _num;
    private Coins(decimal num)
    {
        _num = num;
    }
    public static readonly Coins OneCent = new Coins(0.01M);
    public static readonly Coins FiveCent = new Coins(0.05M);
    public static readonly Coins OneDollar = new Coins(1M);
    //add more properties like this
}