精华内容
下载资源
问答
  • 2017-11-03 16:07:52

    const 关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值是常数,不能被修改

    更多相关内容
  • C# const与readonly详解

    2018-09-11 14:41:46
    说到常量,我们肯定能想到的是const与readonly,同时readonly也叫只读变量。所谓常量,即在初始化后,不能再对其值做更改,只能使用的变量。在实际编码过程中,我们可能很少用到const与readonly,其实不是用不到,...

    说到常量,我们肯定能想到的是const与readonly,同时readonly也叫只读变量。所谓常量,即在初始化后,不能再对其值做更改,只能使用的变量。在实际编码过程中,我们可能很少用到const与readonly,其实不是用不到,而是我们对这两个修饰符了解不够或理解不深,所以不清楚什么时候需要用到他们。在说这两个修饰符前,先带入一下编译时常量(compile-time)和运行时常量(runtime)。

    • 编译时常量:程序编译时将对常量值进行解析,并将所有常量引用替换为相应值。编译时常量效率更高,但可能会有错误
    • 运行时常量:程序运行时进行赋值,赋值完成后便无法更改。运行时常量在产生IL时是产生该常量的引用,而不是它的值。它可以被初始化成任何类型

    一. const、readonly和static readonly各自特性

    1. const是编译时常量,定义时必须指定其初始值,并且其定义的常量默认为静态。
    2. readonly是运行时常量,定义时可以不进行初始化,当没有初始化时,需在构造函数中初始,需要注意的是,其常量初始值在构造函数中的优先级更高。其定义的常量默认为非静态。
    3. static readonly虽然它是readonly的静态形式,但是除了readonly的特性外,还有一点需要特别注意,就是在构造函数内指定初始值时,这个构造函数必须是静态无参构造函数。
    4. 相对来说,cosnt较高效,readonly较灵活。在应用上可以用static readonly代替const,以此平衡const在灵活性上的不足,同时还能克服编译器优化cosnt性能,所带来的程序集引用不一致问题。

    二. const与readonly可修饰的值类型

    • const:
    1. 只能为下列类型之一(或能转换为下列类型):sbyte、byte、short、ushort、int、uint、long、ulong、char、float、double、decimal、bool、string、enum类型。
    2. 能够声明为const的引用类型只能为string或值为null的其他引用类型。
    3. object、Array(数组)和struct(结构)不能被声明为const常量。
    • readonly:任何类型

    三. 注意事项

    • const可用于修饰类的成员(field)或者一个局部变量(local variable),而readonly仅用于修饰类的成员(field)。
    • const在定义时初始,不能在构造函数中初始,而readonly的初始可以在定义时也可以在构造函数中,且在构造函数中的初始值优先级更高。
    • 因为const的常量在编译时,会将所有用到此常量的值初始化,为了避免字段冲突等情况,引起错误,对于类的const常量,尽量用完整的,全大写的英文单词组成。
    • 不能在类,方法,属性等上面使用readonly

     

     

    展开全文
  • C#const用法详解

    2020-09-04 01:27:40
    主要介绍了C#const用法,实例分析了C#const的用法及使用技巧,并对比分析了readonly关键字与const关键字的不同,需要的朋友可以参考下
  •  const 在声明的时候进行初始化,即在 编译的时候就能确定该值(编译期静态解析的常量), readonly 既可以在声明的时候进行初始化,也可以在构造器中进行初始化(运行期动态解析的常量)。 2. 修饰对象不同...

    1. 初始化时机不同

     const 在声明的时候进行初始化,即在 编译的时候就能确定该值(编译期静态解析的常量), readonly  既可以在声明的时候进行初始化,也可以在构造器中进行初始化(运行期动态解析的常量)。

    2. 修饰对象不同 

    a、修饰的类型不同 const 只能修饰数值(Struct 类型除外 ,例如DateTimel)、字符串或引用类型的只能为null ;readonly 既可以修饰值类型(包括struct 类型) 也可以修饰引用类型(string ,null 或自定义类型)

     

    b、修饰变量的作用域不同 

    const 可以修饰类的字段和局部变量(方法体内的变量);readOnly 只能修饰 类的字段,不能修饰局部变量。 但二者都不能修饰类属性成员和类成员方法。

     

    3.修饰隐含不同

    const隐含static,不可以再写static const;readonly则不默认static,如需要可以写static readonly;

     

    展开全文
  • C# const / static / readonly

    2016-12-01 11:49:28
    constconst定义的是静态常在对象初始化的时候赋值,以后不能改变它的值,属于编译时常量。staitcstatic 定义的是静态变量,可以再外部改变它的值。readonlyreadonly 是只读变量.属于运行时变量,可以在类初始化的...

    const

    const定义的是静态常在对象初始化的时候赋值,以后不能改变它的值,属于编译时常量。

    staitc

    static 定义的是静态变量,可以再外部改变它的值。

    readonly

    readonly 是只读变量.属于运行时变量,可以在类初始化的时候改变它的值。

    Note

    const 和 static 不能在一起用。

    const和static readonly的确非常像,通过类名而不是对象名进行访问,在程式中只读等等。

    在多数情况下能混用。二者本质的差别在于,const的值是在编译期间确定的,因此只能在声明时通过常量表达式指定其值。而static readonly是在运行时计算出其值的,所以还能通过静态构造函数来赋值。

    展开全文
  • C#const关键字浅见

    2020-06-12 12:37:01
    C#const关键字浅见 本篇文章主要介绍c#const关键字的用法和特点,希望对各位朋友有所帮助,那我们就开始吧! 一、const关键字 1、先了解它是什么意思 从上图可以看出const翻译后译为:常量;常数 在c#const...
  • C# const与static的理解

    2019-10-06 04:08:08
    C# const与static的理解 static readonly与 const变量,作用是一样的,无论访问修饰符是不是public,还是其它(private、 protected、internal),变量名称一般为大写,中间以下划线。 例如: ...
  • C#——关键字:const

    2021-01-06 11:56:34
    C#——关键字:const 使用 const 关键字来声明某个常量字段或常量局部变量。 常量字段和常量局部变量不是变量并且不能修改。 常量可以为数字、布尔值、字符串或 null 引用。 不要创建常量来表示你需要随时更改的信息...
  • 一、 const与readonly ①【const】其修饰的字段只能在自身声明时初始化。 ②【Readonly】是只读变量,属于运行时变量,可以在类初始化的时候改变它的值。该类型的字段,可以在声明或构造函数中初始化。 ③小结: ...
  • c#const与readonly区别

    2019-01-29 12:22:07
    const 的概念就是一个包含不能修改的值的变量。 const 字段是编译时常数,而 readonly 字段可用于运行时常数。 const 默认就是静态的,而 readonly 如果设置成静态的就必须显示声明。 const只能在初期就使用常量...
  • 我们都知道,const和static readonly的确很像:通过类名而不是对象名进行访问,在程序中只读等等。在多数情况下可以混用。 二者本质的区别在于,const的值是在编译期间确定的,因此只能在声明时通过常量表达式指定...
  • const 的概念就是一个包含不能修改的值的变量。常数表达式是在编译时可被完全计算的表达式。因此不能从一个变量中提取的值来初始化常量。如果 const int a = b+1;b是一个变量,显然不能再编译时就计算出结果,所以...
  • C#关键字之const详解

    万次阅读 多人点赞 2017-05-18 11:28:51
    一、const关键字限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性。 1.用于修改字段或局部变量的声明,表示指定的字段或局部变量的值是常数,不能被修改。 2.常数声明的类型指定声明...
  •  Type t = typeof(GlobalConst);  FieldInfo[] fi = t.GetFields();//获得私有字段   List<FieldInfo> fieldInfoList = new List();  foreach(FieldInfo fieldInfo in fi)  {  if (fieldInfo.Name.Contains(...
  • C# readonly static const的区别
  • C#中编程时,经常使用关键字const,readonly和static。 但是,尽管这些关键字具有重要的区别,但它们也具有相似之处,有时很难知道何时使用它们。 本文讨论了C#中的const,static和readonly关键字,它们如何进行...
  • C# const变量详细描述

    2013-04-12 22:17:22
    C#语言有很多值得学习的地方,这里我们主要介绍C# const变量,包括介绍getter与setter(属性存取器)可以像方法一样封装逻辑并且像变量一样使用等方面。 static readonly与C# const变量,作用是一样的,无论访问修饰...
  • C# 定义常量 const

    千次阅读 2019-07-20 11:22:58
    在定义类型前加上 const ,表示这个变量不能被重新赋值,只存在初始赋值。 int num1 = 10; //定义和初始值变量 num1 = 20; //重新赋值变量 const int num2 = 10; //定义和初始值常量 num2 = 20; //报错,程序...
  • c# const const readonly

    2012-03-05 14:52:32
    const 的概念就是一个包含不能修改的值的变量。常数表达式是在编译时可被完全计算的表达式。因此不能从一个变量中提取的值来初始化常量。 如果 const int a = b+1;b是一个变量,显然不能再编译时就计算出结果,所以...
  • 在我们编码的过程 ,const 是我们经常用到的一种声明类型,如果不了解const的运行机制,有时候会发生一些莫名其妙的bug,可能让我们掉入深坑中。 接下来我们一起看看常量的应用吧! 1.常量默认是静态类型,所以不能...
  • 主要介绍了深入探讨C#中的const、readonly关键字,本文可以帮助你深刻理解这两个关键字,而且是面试中最可能面试到的问题哦,需要的朋友可以参考下
  • const和static readonly的确很像:通过类名而不是对象名进行访问,在程序中只读等等。在多数情况下可以混用。二者本质的区别在于,const的值是在编译期间确定的,因此只 能在声明时通过常量表达式指定其值。而static...
  • 声明一个const数组

    千次阅读 2020-02-01 12:15:50
    是否可以编写类似于以下内容的内容? public const string[] Titles = { "German", "Spanish", "Corrects", "Wrongs" };
  • C# const和readonly的区别

    2014-05-05 16:43:46
    //很多初学者分不清readonly和const的使用场合。它们的本质区别如下: //1.const是一个编译期常量,readonly是一个运行时变量 //2.const只能修饰基元类型、枚举类型或字符串类型,而readonly没有限制 //关于第一...
  • C#中的const与readonly用法

    千次阅读 2018-08-16 10:11:02
    一、const与readonly用法与区别 1. const修饰的局部变量或字段属于静态常量,静态常量是在程序编译时就确定其值;readonly通常用来修饰字段,属于动态常量,动态常量是在运行时确定其值的。 2. 由于const是编译...
  • C#中的静态常量(const)和动态常量(static和readonly)用法和区别 C#中有两种常量类型,分别为readonly(运行时常量)与const(编译时常量),本文将就这两种类型的不同特性进行比较并说明各自的适用场景。 工作原理 ...
  • // 错误,因为常量只能接收基本类型数据 //public const Building Location = new Building("gz"); // 正确 public static readonly Building Location = new Building("gz"); } class Building { public string ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 84,066
精华内容 33,626
关键字:

c# const

c# 订阅
友情链接: Digitization.rar