C#中const 和 static readonly 区别

解决方案 »

  1.   

    const
    用 const 修饰符声明的成员叫常量,是在编译期初始化并嵌入到客户端程序
    static readonly
    用 static readonly 修饰符声明的成员依然是变量,只不过具有和常量类似的使用方法:通过类进行访问、初始化后不可以修改。但与常量不同的是这种变量是在运行期初始化
      

  2.   

    对const变量赋值,编译器会报错,readonly不会
      

  3.   

    不是吧
    const开始要赋值的吧
      

  4.   

    对const变量不能赋值,readonly可以赋值,但只有一次机会
      

  5.   

    const:常量,使用时必须赋初值,本身是静态的,但是不能用static修饰
    static readonly:静态只读变量,可以初值,就与const无多大差异了,
    但如果在程序运行前其值是未知的,
    就可以通过计算赋值,而const就不可以
      

  6.   

    NO,NO,NO~
    这种说法就有点不对了,
    你看下面:namespace ConsoleApplication1
    {    
        class Program
        {
            static void Main(string[] args)
            {
                
                Console.WriteLine(Class1.i.ToString()); //输出999
                Console.ReadLine();
            }    
        }
        class Class1
        {
            static Class1()
            {
                i = i*100-1; //又可以通过计算再次赋值
            }
            public static readonly int i=10; //第一次赋值初值
        }
        
    }