標籤:style blog color 使用 檔案 art
迭代器
可以返回相同類型的值的有序序列的一段代碼,可用作方法,運算子或get訪問器的代碼體
使用 yield return 語句依次返回每個元素,yield break 語句可將終止迭代
迭代器的傳回型別必須為 IEnumerable 或 IEnumerator 中的任意一種
對IEnumerator 介面實現GetEnumerator方法:
namespace Test01{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } public class Family : System.Collections.IEnumerable { string[] MyFamily ={ "父親","母親","弟弟","妹妹"}; public System.Collections.IEnumerator GetEnumerator() { for (int i = 0; i < MyFamily.Length; i++) { yield return MyFamily[i]; } } } private void Form1_Load(object sender, EventArgs e) { Family myfamily = new Family(); foreach (string str in myfamily) { richTextBox1.Text += str + "\n"; } } }}
部分類別
可以將類,結構或介面的定義拆分到兩個或多個源檔案中
定義分布類需要使用 partial 關鍵字,部分類別的每個部分都必須包含一個partial關鍵字,並且其聲明必須與其他部分位於同一命名空間
在設定部分類別時,各個分部必須有相同的可訪問性
namespace Test04{ class Program { partial class Mclass { public void Hello() { Console.WriteLine("用一生下載你"); } } partial class Mclass { public void Hi() { Console.WriteLine("芸燁湘楓"); } } static void Main(string[] args) { Mclass myclass = new Mclass(); myclass.Hello(); myclass.Hi(); Console.ReadLine(); } }}
namespace Test03{ public class Year : System.Collections.IEnumerable//實現迭代器的類 { string[] season = { "Spring", "Summer", "Autumn", "Winter" }; public System.Collections.IEnumerator GetEnumerator() { for (int i = 0; i < season.Length; i++) { yield return season[i]; } } } class Program { static void Main(string[] args) { Year y = new Year(); // 使用迭代器 foreach (string s in y) { System.Console.Write(s + " "); } Console.ReadLine(); } }}