好的,我知道这是不可能的,但这是制定问题标题的最佳方法。问题是,我试图使用自己的自定义类而不是float(用于确定性仿真),并且我希望语法尽可能地接近。所以,我当然希望能够写类似

FixedPoint myNumber = 0.5f;

是否有可能?

最佳答案

是的,如果此类是您编写的,则可以为FixedPoint创建一个隐式类型转换运算符。

class FixedPoint
{
    public static implicit operator FixedPoint(double d)
    {
        return new FixedPoint(d);
    }
}

如果对于读者/编码器而言,double不能转换为FixedPoint,您还可以使用显式类型转换。然后,您必须编写:
FixedPoint fp = (FixedPoint) 3.5;

关于c# - 重载= C#中的运算符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13158227/

10-11 07:10