有没有办法在C#中将'Double'或'double'转换为'const Double'或'const double'?

时间:2009-12-24 10:05:47

标签: c# .net types

我的问题类似于 Const double initialised from Lua 但是我问这个问题

Double W1 = -21.0;
const Double X = (const Double) W1;

有没有办法这样做。

之间有什么区别:

    double Y;
    Double Y;

2 个答案:

答案 0 :(得分:10)

  

有没有办法这样做?

没有因为在编译时必须知道常量值,所以你不能将它分配给普通变量

  

之间有什么区别:   双Y;和双Y;

绝对没有区别,第一个是actual type的别名。

答案 1 :(得分:2)

如果您希望表现为常量的符号是字段,则可以使用readonly修饰符而不是常量。这将允许您在字段初始值设定项或(静态/非静态)构造函数中为符号赋值。

来自MSDN

  

readonly关键字不同于   const关键字。 const字段只能   在宣言中初始化   场。只读字段即可   在宣言中初始化   或者在构造函数中。因此,   readonly字段可以有不同   值取决于构造函数   用过的。此外,虽然const字段是   一个编译时常量,readonly   字段可用于运行时   常量,如下一行:public   static readonly uint l1 =   (UINT)DateTime.Now.Ticks;

示例:

class A
{
    readonly double d;

    public A()
    {
        double w = -21.0;
        d = w;
    }
}