zoukankan      html  css  js  c++  java
  • C#:那些不许被修改的只读量

    常量:表示常量值的类的成员。

    • 常量表示的值能够在编译的时候计算出来用于代替常量名
    • 常量属于类型,而不属于实例。所以没有实例常量一说,想要表示"实例常量",我们可以用实例只读字段来表示
    • 我们还学过本地常量(局部常量),要和常量区分开

    常量的用途有哪些?

    • 在类中声明常量来表示类型中的一些永远不会改变的数据,在我们想用的使用直接拿来使用。
    //
    // 摘要:
    //     表示 32 位带符号整数。
    [ComVisible(true)]
    public struct Int32 : IComparable, IFormattable, IConvertible, IComparable<Int32>, IEquatable<Int32>
    {
        //
        // 摘要:
        //     表示 System.Int32 的最大可能值。 此字段为常数。
        public const Int32 MaxValue = 2147483647;
        //
        // 摘要:
        //     表示 System.Int32 的最小可能值。 此字段为常数。
        public const Int32 MinValue = -2147483648;
    }
    

    上面摘自int类型的API,我们可以看到int类型能够表示的最大值是永远不会改变的,对于这样的数据我们正好就可以使用常量

    • 常量能够增加可读性和执行效率
    //
    // 摘要:
    //     为三角函数、对数函数和其他通用数学函数提供常数和静态方法。
    public static class Math
    {
        //
        // 摘要:
        //     表示圆的周长与其直径的比值,由常数 π 指定。
        public const double PI = 3.1415926535897931;
    }
    

    对于圆周率Π来说,我们不希望在每一次使用到Π的值的时候,都写一遍3.14....;如果将3.14....声明成一个常量,那么以后在程序中使用到它的时候就会很方便。
    另外,常量在编译的时候就会将常量后面的值拿出来代替常量名,它并不会像字段那样占用内存空间,所以使用常量要比定义那些只读字段效率要高很多。

    常量的声明: 修饰符 const 类型 常量名(一般全部用大写英文字母) = 常量或常量表达式;

    class Utility
    {
        private const string SERVICEURL = "https://wwww.waxpy.com/upload/file";
    }
    

    各种"只读"的使用场景

    • 为了提高程序执行效率,在只读字段、只读属性、常量中,优先选择常量
    • 为了防止对象的数据被修改,使用只读字段
    • 为了向外暴露不允许修改的数据,使用只读属性(静态只读属性、实例只读属性)
    • 常量能表示各种值类型,但是不能声明称结构体或者引用类型;而使用静态只读字段就没有这点限制。
      静态只读解决常量短板

    以上是对常量和只读量的总结,记录下来,以便以后查阅。

  • 相关阅读:
    Using X++ code direct execute to sql statement
    SysMultiTableLookup class
    Using X++ Modify Table and class name From AOT Project
    identify multiple selected records
    简单实用SQL脚本(转)
    FTK应用程序编程接口(API)手册1
    《那些年啊,那些事——一个程序员的奋斗史》——28
    ftk的python binding
    《那些年啊,那些事——一个程序员的奋斗史》——27
    好久没来,CSDN都改版了
  • 原文地址:https://www.cnblogs.com/bigbosscyb/p/13715663.html
Copyright © 2011-2022 走看看