我们总希望自己可以化很短的事件精通一项技能,可能存在这种天才,但大多数人包括我自己在内都是普通人,放下焦虑、放下急躁,放平心态,每一份的努力都不会白费,之前用C#做了很多日常工作中需要用到的功能,但是直到上一篇笔记,才理解底层逻辑其实就是委托的发布和订阅,再次打开工作中的代码,看到不再陌生的“(object sender, EventArgs e)”,有一种很奇妙的感受。

        长路漫漫,独自前行,若有同好,并肩而行!   --2025-09-27随手记

1.1 迭代器

        集合中的每个元素,都需要被依次返回,清点或执行某项操作,依次返回的过程就是迭代的过程,迭代器就是可以返回相同类型值的有序序列的一段代码,可以再foreach语句中被客户端代码调用,其返回类型必须为IEnumerable或IEnumerator中的任意一个。最常用的方法是对IEnumerato接口实现GetEnumerator()方法

        自定义迭代器实例(用途:当你有个复杂的类,可以针对类中的元组自定义迭代器,在外部可以统一使用froeach进行遍历)

//创建一个名为MyClas的类,其继承接口IEnumberable接口
public class MyClass:System.Collections.IEnumerable
{
    //创建一个string类型的数组,用于存储班级成员
    string[] myClass = { "张三", "李四", "王五", "赵六" };
    //对IEnumerator接口实现GetEnumerator()方法创建迭代器
    public System.Collections.IEnumerator GetEnumerator()
    {
        for (int i = 0; i < myClass.Length; i++)    //使用for语句循环数组
        {
            yield return myClass[i];                //使用yield retrun语句依次返回每个元素
        }
    }
}
internal class Program
{
    static void Main(string[] args)
    {
        MyClass myClass = new MyClass();            //实例化MyClass
        foreach(string str in myClass)              //使用foreach语句遍历MyClass类中的内容并输出
        {
            Console.WriteLine(str);
        }
        Console.ReadLine();
    }
}

1.2 分布类

        分部类允许将类、结构或接口的定义拆分到两个或多个源文件中,每个源文件包含类定义的一部分,编译时Visual Studio会将所有部分组合起来,主要用途如下:

  • 当项目比较庞大时,使用分部类拆分一个类到几个文件中这样可以时不同的人员针对类的不同部分同时开发,提高开发效率;
  • 使用自动生成的源时,无需重新创建源文件,即可将代码添加到类中,比如创建Window窗体时,开发人员无需编辑Visual Studio所创建的源文件。

        定义分部类需使用partial关键字,每个部分都必须包含一个partial关键字,并且声明必须与其他部分位于同一命名控件

        分部类实例:

在account01-04中分别定义了加、减、乘、除运算方法,例如account01是加法运算,2、3、4依次是减、乘、除运算:

partial class account
{
    public int Addition(int a ,int b)
    {
        return a + b;
    }
}

Main函数中直接创建account类的实例ac即可调用四个分部类中定义的方法:

internal class Program
{
    static void Main(string[] args)
    {
        account ac = new account();
        int num1=100,num2=2;
        ac.Addition(num1,num2);         //调用分部类中的加法运算
        ac.Subtraction(num1,num2);      //调用分部类中的减法运算
        ac.Multiplication(num1,num2);   //调用分部类中的乘法运算
        ac.Division(num1,num2);         //调用分部类中的除法运算

    }
}

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐