您的位置:首页 > 编程语言 > C#

C#中代理和var的用法

2008-09-13 06:33 260 查看
http://www.rainsts.net/article.asp?id=111

C# 2.0 允许我们在进行委托实例化时,省略掉委托类型,而直接采用方法名,C#编译器会做合理的推断。

public delegate void TestHandler(int x);

public class Program
{
static void Test(int i)
{
}

static void Execute(TestHandler test, int i)
{
}

static void Main(string[] args)
{
// C# 1.x 代码
TestHandler t1 = new TestHandler(Test);
Execute(new TestHandler(Test), 10);

// C# 2.0 代码
TestHandler t2 = Test; // 注意Test不包含括号,否则就成方法调用了。
Execute(Test, 20);
}
}

看看反编译后的Main方法中 2.0 的代码样子。

private static void Main(string[] args)
{
TestHandler handler1 = new TestHandler(Program.Test);
Program.Execute(new TestHandler(Program.Test), 20);
}

var dict = new Dictionary<string, int> { { "a", 1 }, { "b", 2 } };

foreach (var key in dict.Keys)
{
Console.WriteLine("{0}={1}", key, dict[key]);
}

或许下面这样更 "好看" 一些。

foreach (var item in dict)
{
Console.WriteLine("{0}={1}", item.Key, item.Value);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: