首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > More On Strings: The Implementation
【标  题】:More On Strings: The Implementation
【关键字】:More,On,Strings,The,Implementation
【来  源】:http://blog.joycode.com/qqchen/archive/2004/08/21/31217.aspx

More On Strings: The Implementation

  毫无疑问:String是引用类型。另一方面,String和int (Int32), Single (float)一样都是.NET的Primitive类型,CLR完全了解String对象的内部构造,并且有内建的用于String操作的指令(ldstr)。String的源代码不是用.NET语言/C#实现的,而是在CLR代码当中。在SSCLI的代码中Object.H里面可以找到下面的结构:
               class StringObject : public Object
               {
                  private:
                            DWORD   m_ArrayLength;
                            DWORD   m_StringLength;
                            WCHAR   m_Characters[0];
                 ...
                };

    另外,.NET程序仍然有办法打破String的Immutable——当然通常不建议这样做:

  • unsafe code: C#可以使用unsafe代码直接编辑一个String的字符序列:
               fixed (char* p = str) {
                     p[2] = 'X';
               }
  • P/Invoke: 传递String作为变量给Native函数的时候,Native函数可以改变String的值。

             

More on "More on Strings":【上一篇】
Why are strings immutable?:【下一篇】
【相关文章】
  • More on "More on Strings"
  • Photos of Washington State
  • C# Const Correctness
  • The Annoying Details
  • Mono安装指南
  • Mono的发展蓝图
  • 论Mono的意义
  • MONO最近的情况
  • MONO的成功案例
  • Mono 1.1.5发布
  • 【随机文章】
  • PE教程2: 检验PE文件的有效性(1)
  • [讨论]关于注释的书写位置
  • Solaris管理服务(概述)
  • 三层交换机 VS 路由器
  • 比较影响性能常见等待事件
  • 如何破解不让使用鼠标右键的网站
  • 对BIND几个缺陷的分析
  • 当然你也可以在音频处理软件中压缩再导进去
  • [ZT]7133换盘怎么做?
  • 象棋桥 V2.1算法
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.