C#语言基础速成Day06

“心之官则思,思则得之,不思则不得也。”


前言

昨天我们学习了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#中有多种类型的方法参数:

  1. 值参数(Value Parameters):默认类型,通过值传递参数,方法内部对参数的修改不会影响原来的变量。

    示例

    public void PrintValue(int number)
    {
        Console.WriteLine(number);
    }
    
  2. 引用参数(Reference Parameters):通过引用传递参数,方法内部对参数的修改会影响原来的变量。使用 ref 关键字。

    示例

    public void ModifyValue(ref int number)
    {
        number = 100;
    }
    
  3. 输出参数(Output Parameters):用于返回多个值,使用 out 关键字。

    示例

    public void GetValues(out int number1, out int number2)
    {
        number1 = 1;
        number2 = 2;
    }
    
  4. 参数数组(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 参数修改 IDGetStudentInfo 使用 out 参数返回多个值,PrintDetails 使用 params 参数数组打印多个细节信息。

二、C#字符串,StringBuilder

在C#中,字符串处理是一个常见的任务,主要通过string类和StringBuilder类来完成。两者都有各自的用途和特点。

string

string类用于表示不可变的字符串。这意味着一旦创建,字符串的内容就无法更改。所有对字符串的操作(如拼接、截取等)都会返回一个新的字符串对象,而不是修改原来的字符串。

常用操作

  1. 创建字符串

    string str = "Hello, World!";
    
  2. 拼接字符串

    string str1 = "Hello";
    string str2 = "World";
    string result = str1 + ", " + str2 + "!";
    
  3. 格式化字符串

    string name = "Alice";
    int age = 30;
    string formattedString = string.Format("Name: {0}, Age: {1}", name, age);
    // 使用插值字符串
    string interpolatedString = $"Name: {name}, Age: {age}";
    
  4. 字符串操作

    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是可变的,这意味着你可以直接修改其内容,而不会创建新的对象,从而提高性能。

常用操作

  1. 创建StringBuilder

    StringBuilder sb = new StringBuilder();
    
  2. 添加字符串

    sb.Append("Hello");
    sb.Append(", ");
    sb.Append("World!");
    
  3. 插入字符串

    sb.Insert(5, " there"); // 在索引5处插入" there"
    
  4. 删除字符串

    sb.Remove(5, 6); // 从索引5开始删除6个字符
    
  5. 替换字符串

    sb.Replace("World", "C#"); // 将"World"替换为"C#"
    
  6. 转换为字符串

    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#!
    }
}

总结

  1. string适用于不需要频繁修改内容的场景,因为每次修改都会创建一个新的字符串对象。
  2. StringBuilder适用于需要频繁修改字符串内容的场景,因为它是可变的,可以直接修改而不会创建新的对象,从而提高性能。
    今天就分享到这里,我们明天见·~~~~~~~

哦,对了。我们C#语言的基础部分就快要结束了,后面还有更加深奥的知识等着我们。前面的区域以后再来探索吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

blaizeer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值