CSharp Basics
Delegate
event 是特殊的 delegate,用于事件驱动编程
使用匿名函数订阅事件
publisher.RaiseCustomEvent += (object o, CustomEventArgs e) => {
string s = o.ToString() + " " + e.ToString();
Console.WriteLine(s);
};
IEnumerator
对非泛型集合的简单迭代,支持以 foreach 循环访问集合
public class People: IEnumerable {
IEnumerator IEnumerable.GetEnumerator()
{
return (IEnumerator) GetEnumerator();
}
}
异步
public async Task<int> GetUrlContentLengthAsync() {
var client = new HttpClient();
Task<string> getStringTask =
client.GetStringAsync("https://example.com");
string contents = await getStringTask;
return contents.Length;
}
在 await 语句将控制权出让给调用方