这是Double中的PositiveInfinity声明.
/// <summary>
/// Represents positive infinity. This field is constant.
/// </summary>
/// <filterpriority>1</filterpriority>
public const double PositiveInfinity = double.PositiveInfinity;
Run Code Online (Sandbox Code Playgroud)
这看起来像一个不会通过编译器的循环...为什么它以这种方式声明?这是如何工作的?
Eri*_*ert 14
这是
PositiveInfinityin 的声明Double.
不它不是.
这是
DoubleResharper提供的结构反编译的一部分.
那更好.
这看起来像一个不会通过编译器的循环.
那是因为它是一个不会通过编译器的循环.
为什么Resharper的反编译器会产生无法编译的代码?
我的猜测是,这是一个错误.您将不得不向Resharper团队寻求明确的答案.
可能他们有一种启发式,可以放在Double.PositiveInfinity任何出现正无穷大常数的地方; 这可能是那个错误的地方.所以这是一个容易写的错误.
真实的宣言是什么样的?
我的家用电脑上没有参考资料,但我的猜测是真正的声明是:
public const double PositiveInfinity = 1.0 / 0.0;
Run Code Online (Sandbox Code Playgroud)
我在哪里可以获得参考源,所以我不必依赖不可靠的反编译器?
http://referencesource.microsoft.com