一、迭代器
1、迭代器是可以返回相同类型的值的有序序列的一段代码,可用作方法、运算符或get访问器的代码体;
2、迭代器代码使用yield return语句依次返回每个元素;
使用yield break语句终止迭代;
3、迭代器的返回类型必须为IEnumerable或IEnumerator;
示例代码:
class MyFamily : IEnumerable
{
public string[] Family = { "父亲", "母亲", "姐姐" };
public IEnumerator GetEnumerator()
{
for (int i = 0; i < Family.Length; i++)
{
yield return Family[i];
}
}
}
class Test
{
public static void Main()
{
MyFamily myFamily = new MyFamily();
foreach (var fam in myFamily)
{
Console.WriteLine(fam);
}
}
}
二、分部类
1、使用partial关键字定义分部类;
2、各部声明必须在同一命名空间内;
3、所有分部类型的定义必须在同一程序集或同一模块中(.exe或.dll文件),不能跨越多个模块;
示例代码:
partial class Calc
{
public int MyAdd(int a, int b)
{
return a + b;
}
}
partial class Calc
{
public int MyMul(int a, int b)
{
return a * b;
}
}
class Test
{
public static void Main()
{
Calc calc = new Calc();
Console.WriteLine(calc.MyAdd(1, 2));
Console.WriteLine(calc.MyMul(2, 3));
}
}