const声明如何设置为自己的工作

Ber*_*ryl 2 c# double const

这是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