zoukankan      html  css  js  c++  java
  • CLR via C#学习笔记-第九章-常量性

    9.6 常量性

    有的语言,如非托管C++,允许将方法或参数声明为常量,从而禁止实例方法中的代码更改对象的任何字段,或者更改传给方法的任何对象。CLR没有提供这个功能。

    非托管C++将实例方法或参数声明为const只能防止程序员用一般的代码来更改对象或参数。方法内部总是可以更改对象或实参的。

    要么是通过强制类型转换来去掉常量性,要么通过获取对象/实参的地址,再向那个地址写入。

    所有非托管C++像程序员撒了个黄,使他们以为常量对象或实参不能写入。

    实现类型时,可以避免写操纵对象或实参的代码,

    例如String类就没有提供任何能更改String对象的方法,所以字符串是不可变的。

    CLR没有验证常量对象/实参未被改变的能力,所以CLR将不得不对每个写入操作进行验证,

    确定该写入针对的不是常量对象,这对性能影响很大。因此CLR没有提供常量对象/实参的支持

  • 相关阅读:
    HTML Window.document对象
    HTML JavaScript的DOM操作
    HTML 运算符、类型转换
    HTML JavaScript简介
    js对象学习
    理解MySQL数据库覆盖索引
    mysql 索引2
    mysql 索引
    Extjs 使用图标字体来美化按钮)
    MySql数据类型问题
  • 原文地址:https://www.cnblogs.com/errornull/p/9833592.html
Copyright © 2011-2022 走看看