“心之官则思,思则得之,不思则不得也。”
目录
- 前言
- 文章有误敬请斧正 不胜感恩!||Day06
- 一、C#属性访问器、方法参数
- 属性访问器(Property Accessors)
- 方法参数(Method Parameters)
- 综合示例
- 二、C#字符串,StringBuilder
- `string` 类
- `StringBuilder` 类
- 综合示例
- 总结
前言
昨天我们学习了C#面向对象和高级特性:,今天我们来学习C#属性访问器、方法参数和C#字符串,StringBuilder的一些内容。
文章有误敬请斧正 不胜感恩!||Day06
以下是本篇文章正文内容:
一、C#属性访问器、方法参数
在C#中,属性访问器和方法参数是常用的两个概念,分别用于管理类的属性和方法的参数传递。我们可以用以下的例子了解今天所学:
属性访问器(Property Accessors)
属性(Properties)允许你控制类的字段的访问和赋值。属性访问器包括 get
访问器和 set
访问器。
- get 访问器:用于读取属性值。
- set 访问器:用于写入属性值。
示例:
public class Person
{
private string name;
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
}
在这个示例中,Name
属性有一个 get
访问器和一个 set
访问器,分别用于获取和设置 name
字段的值。
方法参数(Method Parameters)
方法参数是传递给方法的值。C#中有多种类型的方法参数:
-
值参数(Value Parameters):默认类型,通过值传递参数,方法内部对参数的修改不会影响原来的变量。
示例:
public void PrintValue(int number) { Console.WriteLine(number); }
-
引用参数(Reference Parameters):通过引用传递参数,方法内部对参数的修改会影响原来的变量。使用
ref
关键字。示例:
public void ModifyValue(ref int number) { number = 100; }
-
输出参数(Output Parameters):用于返回多个值,使用
out
关键字。示例:
public void GetValues(out int number1, out int number2) { number1 = 1; number2 = 2; }
-
参数数组(Parameter Arrays):允许方法接受可变数量的参数,使用
params
关键字。示例:
public void PrintNumbers(params int[] numbers) { foreach (int number in numbers) { Console.WriteLine(number); } }
综合示例
关于属性访问器和方法参数的代码已经给出,有兴趣的小伙伴可以自己试着尝试一下。
public class Student
{
private int id;
public int ID
{
get { return id; }
set { id = value; }
}
public void UpdateID(ref int newID)
{
ID = newID;
}
public void GetStudentInfo(out int id, out string name)
{
id = ID;
name = "John Doe";
}
public void PrintDetails(params string[] details)
{
foreach (string detail in details)
{
Console.WriteLine(detail);
}
}
}
下面我们来看另一个例子:
在这个例子中,Student
类有一个 ID
属性和三个方法:UpdateID
使用 ref
参数修改 ID
,GetStudentInfo
使用 out
参数返回多个值,PrintDetails
使用 params
参数数组打印多个细节信息。
二、C#字符串,StringBuilder
在C#中,字符串处理是一个常见的任务,主要通过string
类和StringBuilder
类来完成。两者都有各自的用途和特点。
string
类
string
类用于表示不可变的字符串。这意味着一旦创建,字符串的内容就无法更改。所有对字符串的操作(如拼接、截取等)都会返回一个新的字符串对象,而不是修改原来的字符串。
常用操作:
-
创建字符串:
string str = "Hello, World!";
-
拼接字符串:
string str1 = "Hello"; string str2 = "World"; string result = str1 + ", " + str2 + "!";
-
格式化字符串:
string name = "Alice"; int age = 30; string formattedString = string.Format("Name: {0}, Age: {1}", name, age); // 使用插值字符串 string interpolatedString = $"Name: {name}, Age: {age}";
-
字符串操作:
string original = "Hello, World!"; string upper = original.ToUpper(); // "HELLO, WORLD!" string lower = original.ToLower(); // "hello, world!" bool contains = original.Contains("World"); // true string substring = original.Substring(7, 5); // "World"
StringBuilder
类
StringBuilder
类用于处理需要频繁修改的字符串,尤其是在循环中进行字符串拼接或其他操作时。StringBuilder
是可变的,这意味着你可以直接修改其内容,而不会创建新的对象,从而提高性能。
常用操作:
-
创建StringBuilder:
StringBuilder sb = new StringBuilder();
-
添加字符串:
sb.Append("Hello"); sb.Append(", "); sb.Append("World!");
-
插入字符串:
sb.Insert(5, " there"); // 在索引5处插入" there"
-
删除字符串:
sb.Remove(5, 6); // 从索引5开始删除6个字符
-
替换字符串:
sb.Replace("World", "C#"); // 将"World"替换为"C#"
-
转换为字符串:
string result = sb.ToString();
综合示例
using System;
using System.Text;
class Program
{
static void Main()
{
// 使用 string 类
string str1 = "Hello";
string str2 = "World";
string result = str1 + ", " + str2 + "!";
Console.WriteLine(result); // 输出: Hello, World!
// 使用 StringBuilder 类
StringBuilder sb = new StringBuilder();
sb.Append("Hello");
sb.Append(", ");
sb.Append("World!");
Console.WriteLine(sb.ToString()); // 输出: Hello, World!
// StringBuilder 插入、删除和替换
sb.Insert(5, " there");
Console.WriteLine(sb.ToString()); // 输出: Hello there, World!
sb.Remove(5, 6);
Console.WriteLine(sb.ToString()); // 输出: Hello, World!
sb.Replace("World", "C#");
Console.WriteLine(sb.ToString()); // 输出: Hello, C#!
}
}
总结
string
适用于不需要频繁修改内容的场景,因为每次修改都会创建一个新的字符串对象。StringBuilder
适用于需要频繁修改字符串内容的场景,因为它是可变的,可以直接修改而不会创建新的对象,从而提高性能。
今天就分享到这里,我们明天见·~~~~~~~
哦,对了。我们C#语言的基础部分就快要结束了,后面还有更加深奥的知识等着我们。前面的区域以后再来探索吧~