我正忙着为一个新的应用程序构建我的域,我遇到了需要创建自己类型的情况。
我想要创建一个叫做频率的类型。
它必须是小数点,小数点3位。
下面是一些例子:
135.000
135.100
135.001
etc它总是需要小数点3位。
我还想对对象设置一些特定的界限和验证,这就是为什么我认为最好创建一个自定义类型。
所以我的问题是:
企图:
public class Frequency
{
private decimal frequency;
public void setFrequency(Frequency tmp)
{
this.frequency = tmp;
}
public Frequency getFrequency()
{
return this.frequency;
}
}发布于 2014-01-20 08:40:17
您可以使用implicit和operator关键字来实现这一点:
public class Frequency
{
private double freq;
public double Value
{
get { return freq; }
private set { freq = value; }
}
private Frequency(double value)
{
this.freq = value;
}
public static implicit operator Frequency(double value)
{
return new Frequency(value);
}
public static implicit operator double(Frequency freq)
{
return freq.Value;
}
public override string ToString()
{
return freq.ToString("0.000");
}
}这允许您设置值(Frequency data = 153)并访问它以进行数学操作。
Frequency data = 153;
double multi = data * 153; https://stackoverflow.com/questions/21227940
复制相似问题