假设我有一个小数列表:
List<decimal> values;
和2用于显示小数的函数:
string DisplayPct(decimal pct)
{
return pct.ToString("0.00 %");
}
string DisplayValue(decimal val)
{
return val.ToString("0.00");
}
实现的最佳机制是什么,所以我可以知道根据值调用哪个函数?
我本来希望在C#中使用例如typedef。这样,我可以声明一个类型Percent和一个Decimal类型,它们都代表十进制值,但后来我知道如何根据它的类型显示值。
C#中的任何等价物?
由于
答案 0 :(得分:3)
以下是我的课程:
public class Percent
{
public decimal value;
public Percent(decimal d) { value = d; }
public static implicit operator Percent(decimal d) { return new Percent(d); }
public static implicit operator decimal(Percent p) { return p.value; }
}
public class DecimalPrecise
{
public decimal value;
public DecimalPrecise(decimal d) { value = d; }
public static implicit operator DecimalPrecise(decimal d) { return new DecimalPrecise(d); }
public static implicit operator decimal(DecimalPrecise d) { return d.value; }
}
答案 1 :(得分:2)
听起来你想要两个类:小数和百分比。每个都有一个适当打印的ToString。如果它们都具有相同的接口,则可以使用该公共接口在List中集合两者。
答案 2 :(得分:2)
在课堂上包裹百分比。你的一些工作。只需确保定义implicit operator
以捕获小数,并根据需要定义一些其他操作和ToString。