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

时间:2013-06-01 14:37:05

标签: c# double const

这是Double中的PositiveInfinity声明。

/// <summary>
/// Represents positive infinity. This field is constant.
/// </summary>
/// <filterpriority>1</filterpriority>
public const double PositiveInfinity = double.PositiveInfinity;

这个看起来就像一个不会通过编译器的循环......为什么它以这种方式声明&amp;这是怎么回事?

1 个答案:

答案 0 :(得分:14)

  

这是PositiveInfinityDouble的声明。

不,不是。

  

这是Resharper提供的Double结构的反编译部分。

那更好。

  

这看起来像一个不会通过编译器的循环。

那是因为一个不会通过编译器的循环。

  

为什么Resharper的反编译器会产生无法编译的代码?

我的猜测是,这是一个错误。你必须要求Resharper团队给出明确的答案。

可能他们有一种启发式方法,可以将Double.PositiveInfinity置于正无穷大常数出现的任何地方;这可能是那个错误的地方。所以这是一个容易写的错误。

  

真实声明是什么样的?

我的家用电脑上没有参考资料,但我的猜测是真正的声明是:

public const double PositiveInfinity = 1.0 / 0.0;
  

我在哪里可以获得参考资源,所以我不必依赖不可靠的反编译器?

http://referencesource.microsoft.com