这是Double中的PositiveInfinity声明。
/// <summary>
/// Represents positive infinity. This field is constant.
/// </summary>
/// <filterpriority>1</filterpriority>
public const double PositiveInfinity = double.PositiveInfinity;
这个看起来就像一个不会通过编译器的循环......为什么它以这种方式声明&amp;这是怎么回事?
答案 0 :(得分:14)
这是
PositiveInfinity
中Double
的声明。
不,不是。
这是Resharper提供的
Double
结构的反编译部分。
那更好。
这看起来像一个不会通过编译器的循环。
那是因为是一个不会通过编译器的循环。
为什么Resharper的反编译器会产生无法编译的代码?
我的猜测是,这是一个错误。你必须要求Resharper团队给出明确的答案。
可能他们有一种启发式方法,可以将Double.PositiveInfinity
置于正无穷大常数出现的任何地方;这可能是那个错误的地方。所以这是一个容易写的错误。
真实声明是什么样的?
我的家用电脑上没有参考资料,但我的猜测是真正的声明是:
public const double PositiveInfinity = 1.0 / 0.0;
我在哪里可以获得参考资源,所以我不必依赖不可靠的反编译器?