美文网首页
字符串的使用经验

字符串的使用经验

作者: DotNet患者 | 来源:发表于2017-08-23 16:40 被阅读0次

我根据平时的使用经验,总结了字符串的使用经验,记录如下。

字符串是不可变的

修改字符串时,修改的不是字符串本身,.net会在内存创建新的字符串,所以频繁的操作字符串时要使用StringBuilder类,避免程序报AccessViolationException这种很难定位的异常。

//这种操作会在内存中生成大量的字符串,最好不要这样操作
string sentence = "this ";
sentence += "is ";
sentence += "a ";
sentence += "bad ";
sentence += "using ";
sentence += "case";

//使用StringBuilder类操作字符串
var strBuilder = new StringBuilder();
strBuilder.Append("this")
.Append("is")
.Append("a")
.Append("better")
.Append("way");
string sentence = builder.ToString();

格式化

C#6.0开始支持字符串插入的语法,可以代替String.Format方法。使用String.Format方法容易出错,要么是写错参数,要么是序号写错。字符串插入使用$符号,在字符串中可以直接插入变量,由Visual studio最终帮我们转换成String.Format代码。

string appleStr = "apple";
//编写代码时容易出错——写错参数序号,漏写参数
string out1 = string.Format("this is an {0}", appleStr);
//参数直接写入到字符串中,更不容易出错
string out2 = $"this is an {appleStr}";

nameof 表达式

C#6.0开始支持nameof表达式,使用这个表达式,方便我们将代码中的类名、属性名、方法名等等用户标识符转换成字符串。nameof表达式类似于typeof,Visual studio会在编译前将表达式转换成字符串。

//before
if(x == null) throw new ArgumentNullException("x");
//now,我们可以很方便的查找引用和重命名
if(x == null) throw new ArgumentNullException(nameof(x));

//before
if(PropertyChanged != null){
    PropertyChanged?.Invoke(this, "Count");
}
//now
if(PropertyChanged != null){
    PropertyChanged?.Invoke(this, nameof(Count));
}

相关文章

  • 字符串的使用经验

    我根据平时的使用经验,总结了字符串的使用经验,记录如下。 字符串是不可变的 修改字符串时,修改的不是字符串本身,....

  • 2019-02-19

    微信小程序修复bug经验 问题:在小程序使用js字符串替换功能无法替换? 解决方案: 1.汉字...

  • 「Redis设计与实现」字符串篇

    字符串存储规则 redis没有默认使用c字符串,仅在字符串字面量和使用c字符串。如果字符串为变量时,则使用SDS字...

  • 006-字符串

    字符串 字符串是Python中最常用的数据类型。一般使用引号来创建字符串 使用单引号创建字符串'hello' 使用...

  • Kotlin基础认识 (6)字符串

    一、字符串字面量 普通字符串:使用双引号 " 括起来的字符串。 原始字符串:使用三个双引号 """ 括起来的字符串...

  • 字符串

    如何获取字符串每一个字节 rune 的使用 使用for range 遍历字符串 使用字节切片构造字符串 使用run...

  • AppleScript-字符串

    使用规则字符串需使用双引号,不能使用单引号字符串中有引号时,需使用转义字符"",如"\他说:"你好!"" 字符串拼...

  • Go语言:"" 与 `` 包裹字符串的区别

    "" 与 `` 包裹字符串的区别 解析: 使用 "" 包裹的字符串 会解析 字符串中的 转义符 使用 `` 包裹的...

  • 博客

    在这一周我学会了 字符串 元组 列表 字典 的使用 列表的使用 字典的使用 字符串的使用

  • web前端入门到实战:js截取字符串相关的知识点

    截取字符串中的数字 1、使用parseInt() 2、使用正则 截取字符串 1、使用split() 2、使用joi...

网友评论

      本文标题:字符串的使用经验

      本文链接:https://www.haomeiwen.com/subject/mstjdxtx.html