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

    9.6 常量性

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

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

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

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

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

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

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

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

  • 相关阅读:
    二进制包安装MySQL数据库
    Nginx 访问日志轮询切割
    安装Nginx服务
    生产环境常见的HTTP状态码列表
    SSH批量部署服务
    MYSQL数据库的优化
    inotify+rsync实现实时同步部署
    rsync同步架构
    Linux shell脚本编程(三)
    Linux shell脚本编程(二)
  • 原文地址:https://www.cnblogs.com/errornull/p/9833592.html
Copyright © 2011-2022 走看看