staic表示静态,长驻内存,可修改值;const表示常量,不可修改。你说的不错,但是“其它无差别”太绝对了。

解决方案 »

  1.   

    好比说:
    常量表达式对于编译器必须是可计算的值(这个值会直接生成到IL中),
    因此,假如你要声明引用类型的常数,初始化的值只能是string和 null;
      

  2.   

    static和const根本不是一回事,没有任何可比性。你应该拿readonly和const比较。它们的差异主要是一个是运行时的,一个是编译时的。因此修改const会打破二进制兼容性。static就是静态成员,也就是属于类的数据,和常量完全不是一回事。
      

  3.   

    尽量不要用const。。这个东西会直接hardcode到IL里面出,改动的话,必须重新编译所有调用过这个常量的文件
      

  4.   

    可以把const理解为static,因为二者都是属于类型这一层面的,但不要认为是static,static字段占内存,const不需要任何内存
      

  5.   

    好像如果你的字段用的是static,那不实例化对像也可以调用,但是const好像是要实例化了才能调用
    不知道对不对请楼下斧正