方便新手学习,创建string 需要注意
- stirng 类型虽然是引用类型,但是 一旦声明,不可改变
- string 类型无法进行字符串拼接,意思是拼接字符串是生成了新的字符串对象
- 当我们使用字符串字面量来初始化字符串变量时,C#编译器会自动优化,将具有相同值的字符串共享同一个内存地址。这是因为编译器会在一个称为"字符串常量池"的地方存储字符串字面量,并且在需要时将其分配给变量。
-
内存分配方式:字符串通常会在堆上分配内存,而数组和集合通常也在堆上分配内存。但是,字符串可能会在栈上分配内存,具体取决于其作用域和声明方式。
- 如果频繁给字符进行赋值请是StringBuider
举例:1,这样原始字符串是不会改变的
void ModifyString(string s)
{
s = "Modified";
}
string s = "Original";
ModifyString(s);
Console.WriteLine(s); // 输出 Original
举例2 :
C# 中 string s="a"
s+="b"
这样是创建了几个string变量
在C#中,字符串是不可变的,所以每次对字符串进行操作时,都会创建一个新的字符串对象。在这种情况下,创建了两个字符串变量:一个包含"a",另一个包含"ab"。
- 字符串适用于存储和操作文本数据,例如读取和写入文件、处理用户输入、拼接和格式化等操作。
- 数组适用于存储一组相同类型的元素,可以通过索引访问和修改数组元素。常见的使用场景包括存储和处理集合数据、排序和搜索操作等。
- 集合(如List、Dictionary、HashSet等)适用于存储和操作一组不同类型的元素,提供了更多的灵活性和功能,例如动态添加和删除元素、查找和过滤等操作。