当前位置: 首页 > news >正文

c#进阶之数据结构(字符串篇)----String

1、String介绍

        首先我们得明白,string和String代表的实际上是同一个类型,string是C#中的关键字,代表String类型,因此我们直接来学习String类型。

      

        从官方的底层实现代码可以看出,当前String类型实际上就是一个Char类型的聚合,这里既然是聚合其实也可以得到结论就是string可以使用迭代器进行访问。但是,string类型是不可变的。

        为什么string类型不可变?:原因有很多,但是从底层的角度出发

        其实可以看出来,他只有get没有set,所以是不可变的。

        下面是构造函数,注意带有指针的部分是并不适用于CLS(通用语言规范),也就是c#原生语法的。

2、字段

        目前只有一个字段

3、属性

        string类型有两个属性。

        索引器,只读

        

        char长度,只读

        其实从这里就可以看出来,c#官方推介使用string只是作为临时存储,不希望通过属性或者字段来实现增删改查。

4、方法

        这里选择比较有代表性或者比较常用的方法。

        注意:string类型是不可变的,因此他实际的修改都是返回新的string来实现。

4.1、EndsWith(尾匹配)

4.2、Format(模板格式):不多介绍,常用

4.3、Replace(替换)

        注意,他并不是指只替换第一个,而是全部。

4.4、ReplaceLineEndings (替换所有换行字符)

4.5、Split(拆分,返回string数组)

4.6、StartsWith(开头是否匹配)

4.7、Substring (返回子字符串)

4.8、ToCharArray (返回当前字符串的char数组)

        这里必须要注意点,修改这个char数组里面的值并不会修改string原来的值!可以通过下面的源码得到这个结论

4.9、TryCopyTo(复制到目标范围):做了解,了解一下什么是span

5、运算符

        实现了+法。==和!=判断。

        除此之外还实现了一个。

       可以理解为封装器,这个span是new出来的,但是value通过的是ref这种址传递的方式,因此,这个就是被封装的原来

        

使用方法也很简单,隐式转换

http://www.lryc.cn/news/589488.html

相关文章:

  • HTTP常见误区
  • 跨平台移动开发技术深度分析:uni-app、React Native与Flutter的迁移成本、性能、场景与前景
  • 【网络安全】大型语言模型(LLMs)及其应用的红队演练指南
  • 物联网系统中MQTT设备数据的保存方法
  • 闲庭信步使用图像验证平台加速FPGA的开发:第十七课——图像高斯滤波的FPGA实现
  • 基于Langchain4j开发AI编程助手
  • 无人机GPS定位系统核心技术解析
  • 图像的读入、显示、保存和图像文件显示
  • 笔试——Day9
  • IMU 能为无人机提供什么数据?
  • 北京-4年功能测试2年空窗-报培训班学测开-第五十一天
  • 快速通关二叉树秘籍(下)
  • Rocky Linux 9 源码包安装php8
  • ChatTongyi × LangChain:开启多模态AI应用创新之门
  • 共射级放大电路的频率响应Multisim电路仿真——硬件工程师笔记
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | DoubleClickHeart(双击爱心)
  • [设计模式]C++单例模式的几种写法以及通用模板
  • Kubernetes 架构原理与集群环境部署
  • 降本增效!自动化UI测试平台TestComplete并行测试亮点
  • 2025最新国产用例管理工具评测:Gitee Test、禅道、蓝凌测试、TestOps 哪家更懂研发协同?
  • ESLint 除了在packages.json还能在哪里配置?
  • 实测两款效率工具:驾考刷题和证件照处理的免费方案
  • CF37E Trial for Chief 题解
  • 【LeetCode 热题 100】226. 翻转二叉树——DFS
  • Python 数据建模与分析项目实战预备 Day 6 - 多模型对比与交叉验证验证策略
  • Zookeeper入门安装与使用详解
  • CAS单点登录架构详解
  • 关于实习的经验贴
  • 鸿蒙和Android知识点
  • 软件测试面试经历分享?