前几天我正在运行一些代码,发现这行是我认为很奇怪的。
Math.Round(20 * (bytes / 1024.0 / 1024.0 / 1024.0), MidpointRounding.AwayFromZero) / 20.0);
Run Code Online (Sandbox Code Playgroud)
我不明白为什么它们要乘以int20,然后除以float20.0
我最初的怀疑是它与舍入或精度有关,但我在这里或Google上找不到答案(至少与我的搜索字词无关)。进行这种操作的目的是什么?
编辑
对于上下文,此行代码旨在将变量bytes转换为千兆字节
我的项目的结构如下:
// Abstract class
public abstract class Job
{
public abstract JobResult Run();
}
public abstract class JobResult { }
// Concrete implementer
public class Job1 : Job
{
public override Job1Result Run() { }
}
public class Job1Result : JobResult { }
Run Code Online (Sandbox Code Playgroud)
每个具体作业都继承自 Job 并实现 Run 方法,该方法返回 JobResult 的具体类。
但是,当我这样做时,我收到编译器错误:
Job1.Run()':返回类型必须是 JobResult 以匹配重写的成员 Job.Run()
重写抽象方法时真的不能返回返回类型的继承对象吗?