我已经反编译了源代码,他们得到了如下的简单错误:
this.SubReport.Top = 77.0 / 16.0;
错误18无法将类型'double'隐式转换为'float'。一个 存在显式转换(你错过了吗? 演员?)
解决方案很简单:
this.SubReport.Top = (float)(77.0 / 16.0);
// or
this.SubReport.Top = 77.0f / 16.0f;
然而,有很多行。除了替换文本之外,清除这些错误的最简单方法是什么?因为这就是我问这个问题的原因,我不想使用键盘和键盘。替换每一个错误,有1000多行。双击错误&用(浮动)围绕数字是我的最后手段。
答案 0 :(得分:3)
你可以使用Find&替换为RegEx选项
示例:
Input: this.SubReport.Top = 77.0 / 16.0;
Output: this.SubReport.Top = (float)(77.0 / 16.0);
此外,您可以使用组将浮动f
添加到除投射
Input: this.SubReport.Top = 77.0 / 16.0;
Output: this.SubReport.Top = 77.0f / 16.0f;
答案 1 :(得分:2)
尝试自助并使用正则表达式自动执行查找和替换。例如,您可以更改所有分隔:
然后找到其他这样的模式来自动替换它们。
答案 2 :(得分:0)
另一种方法是将Top更改为具有double类型的属性。然后,在属性内部,您可以进行投射。
float _top = 0.0;
double Top
{
set
{
_top = (float)value;
}
get
{
return _top;
}
}
您还可以使用Resharper之类的东西来重构访问Top的getter的代码路径,并在其位置引入另一个属性作为浮点类型,在其属性中返回(float)Top。类似的东西:
float FloatTop
{
get
{
return (float)Top;
}
}