装了 VS2008 beta 2 , 今天小爽了一把 CSharp3.0, 总的感受就是微软帮程序员又分担了很多负担,编译器的编写者试着将程序员的一些冗余工作交给编译器去完成,程序员写起代码来更加顺畅。从语言的角度来讲, C# 的抽象程度越来越高了。
下面这个程序包含了一部分C#3.0的新特征:
1
using
System;
2![](/Images/OutliningIndicators/None.gif)
3
using
System.Collections.Generic;
4![](/Images/OutliningIndicators/None.gif)
5
using
System.Text;
6![](/Images/OutliningIndicators/None.gif)
7
using
System.Threading;
8![](/Images/OutliningIndicators/None.gif)
9
10![](/Images/OutliningIndicators/None.gif)
11
namespace
CSharp3
12![](/Images/OutliningIndicators/None.gif)
13
{
14![](/Images/OutliningIndicators/InBlock.gif)
15
class Program
16![](/Images/OutliningIndicators/InBlock.gif)
17
{
18![](/Images/OutliningIndicators/InBlock.gif)
19
static void Main(string[] args)
20![](/Images/OutliningIndicators/InBlock.gif)
21
{
22![](/Images/OutliningIndicators/InBlock.gif)
23
//扩展方法
24![](/Images/OutliningIndicators/InBlock.gif)
25
string s = "aa2ss";
26![](/Images/OutliningIndicators/InBlock.gif)
27
s.ExMethod();
28![](/Images/OutliningIndicators/InBlock.gif)
29
30![](/Images/OutliningIndicators/InBlock.gif)
31
//对象初始化器
32![](/Images/OutliningIndicators/InBlock.gif)
33
//对象初始化器的出现,减少了冗余代码
34![](/Images/OutliningIndicators/InBlock.gif)
35
//直接在实例化类的同时就初始化了字段,但是这跟构造函数是不同的
36![](/Images/OutliningIndicators/InBlock.gif)
37
myPoint my = new myPoint { X = 0, Y = 1 };
38![](/Images/OutliningIndicators/InBlock.gif)
39
Console.WriteLine("X of my =" + my.X.ToString());
40![](/Images/OutliningIndicators/InBlock.gif)
41
Console.ReadKey();
42![](/Images/OutliningIndicators/InBlock.gif)
43
44![](/Images/OutliningIndicators/InBlock.gif)
45
//匿名类型
46![](/Images/OutliningIndicators/InBlock.gif)
47
//编译器会根据属性来推断相应的类型
48![](/Images/OutliningIndicators/InBlock.gif)
49
//有var的地方就有推断
50![](/Images/OutliningIndicators/InBlock.gif)
51
Console.Clear();
52![](/Images/OutliningIndicators/InBlock.gif)
53
var p1 = new { X = 32, Y = 45 };
54![](/Images/OutliningIndicators/InBlock.gif)
55
Console.WriteLine(
56![](/Images/OutliningIndicators/InBlock.gif)
57
"p1 is :{0},and p1.X={1}" ,
58![](/Images/OutliningIndicators/InBlock.gif)
59
p1.GetType().ToString(),p1.X);
60![](/Images/OutliningIndicators/InBlock.gif)
61
Console.ReadKey();
62![](/Images/OutliningIndicators/InBlock.gif)
63
64![](/Images/OutliningIndicators/InBlock.gif)
65
//Lambda表达式
66![](/Images/OutliningIndicators/InBlock.gif)
67
Console.Clear();
68![](/Images/OutliningIndicators/InBlock.gif)
69
LambdaClass.testLambda1();
70![](/Images/OutliningIndicators/InBlock.gif)
71
Console.WriteLine("********************");
72![](/Images/OutliningIndicators/InBlock.gif)
73
LambdaClass.testLambda2();
74![](/Images/OutliningIndicators/InBlock.gif)
75
Console.ReadKey();
76![](/Images/OutliningIndicators/InBlock.gif)
77
}
78![](/Images/OutliningIndicators/InBlock.gif)
79
80![](/Images/OutliningIndicators/InBlock.gif)
81
}
82![](/Images/OutliningIndicators/InBlock.gif)
83
84![](/Images/OutliningIndicators/InBlock.gif)
85
/// <summary>
86![](/Images/OutliningIndicators/InBlock.gif)
87
/// 扩展方法
88![](/Images/OutliningIndicators/InBlock.gif)
89
/// </summary>
90![](/Images/OutliningIndicators/InBlock.gif)
91
public static class Extensions
92![](/Images/OutliningIndicators/InBlock.gif)
93
{
94![](/Images/OutliningIndicators/InBlock.gif)
95
/// <summary>
96![](/Images/OutliningIndicators/InBlock.gif)
97
/// 扩展方法实际上提供了一种给已定义类添加或者追加方法的方便途径
98![](/Images/OutliningIndicators/InBlock.gif)
99
/// 这里this关键字是个标示符,this后面的类型定义了要给哪个类追加方法
100![](/Images/OutliningIndicators/InBlock.gif)
101
/// </summary>
102![](/Images/OutliningIndicators/InBlock.gif)
103
/// <param name="s"></param>
104![](/Images/OutliningIndicators/InBlock.gif)
105
public static void ExMethod(this string s)
106![](/Images/OutliningIndicators/InBlock.gif)
107
{
108![](/Images/OutliningIndicators/InBlock.gif)
109
Console.WriteLine("This is a Extension Method!!");
110![](/Images/OutliningIndicators/InBlock.gif)
111
Console.ReadKey();
112![](/Images/OutliningIndicators/InBlock.gif)
113
Console.Clear();
114![](/Images/OutliningIndicators/InBlock.gif)
115
}
116![](/Images/OutliningIndicators/InBlock.gif)
117
}
118![](/Images/OutliningIndicators/InBlock.gif)
119
120![](/Images/OutliningIndicators/InBlock.gif)
121
/// <summary>
122![](/Images/OutliningIndicators/InBlock.gif)
123
/// 对象初始化器例子
124![](/Images/OutliningIndicators/InBlock.gif)
125
/// </summary>
126![](/Images/OutliningIndicators/InBlock.gif)
127
public class myPoint
128![](/Images/OutliningIndicators/InBlock.gif)
129
{
130![](/Images/OutliningIndicators/InBlock.gif)
131
int x, y;
132![](/Images/OutliningIndicators/InBlock.gif)
133
134![](/Images/OutliningIndicators/InBlock.gif)
135
public int Y
136![](/Images/OutliningIndicators/InBlock.gif)
137
{
138![](/Images/OutliningIndicators/InBlock.gif)
139
get { return y; }
140![](/Images/OutliningIndicators/InBlock.gif)
141
set { y = value; }
142![](/Images/OutliningIndicators/InBlock.gif)
143
}
144![](/Images/OutliningIndicators/InBlock.gif)
145
public int X
146![](/Images/OutliningIndicators/InBlock.gif)
147
{
148![](/Images/OutliningIndicators/InBlock.gif)
149
get { return x; }
150![](/Images/OutliningIndicators/InBlock.gif)
151
set { x = value; }
152![](/Images/OutliningIndicators/InBlock.gif)
153
}
154![](/Images/OutliningIndicators/InBlock.gif)
155
}
156![](/Images/OutliningIndicators/InBlock.gif)
157
158![](/Images/OutliningIndicators/InBlock.gif)
159
# region Lambda Expressions
160![](/Images/OutliningIndicators/InBlock.gif)
161
162![](/Images/OutliningIndicators/InBlock.gif)
163
public delegate int myDelegate(int a,int b);
164![](/Images/OutliningIndicators/InBlock.gif)
165
166![](/Images/OutliningIndicators/InBlock.gif)
167
/// <summary>
168![](/Images/OutliningIndicators/InBlock.gif)
169
/// Lambda表达式本身是一个委托类型
170![](/Images/OutliningIndicators/InBlock.gif)
171
/// </summary>
172![](/Images/OutliningIndicators/InBlock.gif)
173
public class LambdaClass
174![](/Images/OutliningIndicators/InBlock.gif)
175
{
176![](/Images/OutliningIndicators/InBlock.gif)
177
public static void myMethod(myDelegate myDele)
178![](/Images/OutliningIndicators/InBlock.gif)
179
{
180![](/Images/OutliningIndicators/InBlock.gif)
181
Console.WriteLine(
182![](/Images/OutliningIndicators/InBlock.gif)
183
"Let's have a see what was represented by the delegate:/n{0}",
184![](/Images/OutliningIndicators/InBlock.gif)
185
myDele.Method.ToString());
186![](/Images/OutliningIndicators/InBlock.gif)
187
Console.WriteLine("the result of culculating between 8 & 8 is :");
188![](/Images/OutliningIndicators/InBlock.gif)
189
Console.WriteLine(myDele.Invoke(8, 8));
190![](/Images/OutliningIndicators/InBlock.gif)
191
}
192![](/Images/OutliningIndicators/InBlock.gif)
193
194![](/Images/OutliningIndicators/InBlock.gif)
195
/// <summary>
196![](/Images/OutliningIndicators/InBlock.gif)
197
/// 甚至无须声明参数类型,因为编译器会在匹配的委托里找到它们的类型
198![](/Images/OutliningIndicators/InBlock.gif)
199
/// </summary>
200![](/Images/OutliningIndicators/InBlock.gif)
201
public static void testLambda1()
202![](/Images/OutliningIndicators/InBlock.gif)
203
{
204![](/Images/OutliningIndicators/InBlock.gif)
205
LambdaClass.myMethod((x,y) =>x*y);
206![](/Images/OutliningIndicators/InBlock.gif)
207
}
208![](/Images/OutliningIndicators/InBlock.gif)
209
210![](/Images/OutliningIndicators/InBlock.gif)
211
/// <summary>
212![](/Images/OutliningIndicators/InBlock.gif)
213
/// 很自然的方式,可以替代匿名方法,或者作为一个匿名的委托
214![](/Images/OutliningIndicators/InBlock.gif)
215
/// </summary>
216![](/Images/OutliningIndicators/InBlock.gif)
217
public static void testLambda2()
218![](/Images/OutliningIndicators/InBlock.gif)
219
{
220![](/Images/OutliningIndicators/InBlock.gif)
221
Thread t = new Thread(() =>
222![](/Images/OutliningIndicators/InBlock.gif)
223
{
224![](/Images/OutliningIndicators/InBlock.gif)
225
Console.WriteLine("This is a Lambda Expression!");
226![](/Images/OutliningIndicators/InBlock.gif)
227
});
228![](/Images/OutliningIndicators/InBlock.gif)
229
t.Start();
230![](/Images/OutliningIndicators/InBlock.gif)
231
}
232![](/Images/OutliningIndicators/InBlock.gif)
233
}
234![](/Images/OutliningIndicators/InBlock.gif)
235
#endregion
236![](/Images/OutliningIndicators/InBlock.gif)
237
}
238![](/Images/OutliningIndicators/None.gif)
239
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/None.gif)
4
![](/Images/OutliningIndicators/None.gif)
5
![](/Images/OutliningIndicators/None.gif)
6
![](/Images/OutliningIndicators/None.gif)
7
![](/Images/OutliningIndicators/None.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/None.gif)
11
![](/Images/OutliningIndicators/None.gif)
12
![](/Images/OutliningIndicators/None.gif)
13
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/InBlock.gif)
16
![](/Images/OutliningIndicators/InBlock.gif)
17
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
18
![](/Images/OutliningIndicators/InBlock.gif)
19
![](/Images/OutliningIndicators/InBlock.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/InBlock.gif)
30
![](/Images/OutliningIndicators/InBlock.gif)
31
![](/Images/OutliningIndicators/InBlock.gif)
32
![](/Images/OutliningIndicators/InBlock.gif)
33
![](/Images/OutliningIndicators/InBlock.gif)
34
![](/Images/OutliningIndicators/InBlock.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/InBlock.gif)
37
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/InBlock.gif)
40
![](/Images/OutliningIndicators/InBlock.gif)
41
![](/Images/OutliningIndicators/InBlock.gif)
42
![](/Images/OutliningIndicators/InBlock.gif)
43
![](/Images/OutliningIndicators/InBlock.gif)
44
![](/Images/OutliningIndicators/InBlock.gif)
45
![](/Images/OutliningIndicators/InBlock.gif)
46
![](/Images/OutliningIndicators/InBlock.gif)
47
![](/Images/OutliningIndicators/InBlock.gif)
48
![](/Images/OutliningIndicators/InBlock.gif)
49
![](/Images/OutliningIndicators/InBlock.gif)
50
![](/Images/OutliningIndicators/InBlock.gif)
51
![](/Images/OutliningIndicators/InBlock.gif)
52
![](/Images/OutliningIndicators/InBlock.gif)
53
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
54
![](/Images/OutliningIndicators/InBlock.gif)
55
![](/Images/OutliningIndicators/InBlock.gif)
56
![](/Images/OutliningIndicators/InBlock.gif)
57
![](/Images/OutliningIndicators/InBlock.gif)
58
![](/Images/OutliningIndicators/InBlock.gif)
59
![](/Images/OutliningIndicators/InBlock.gif)
60
![](/Images/OutliningIndicators/InBlock.gif)
61
![](/Images/OutliningIndicators/InBlock.gif)
62
![](/Images/OutliningIndicators/InBlock.gif)
63
![](/Images/OutliningIndicators/InBlock.gif)
64
![](/Images/OutliningIndicators/InBlock.gif)
65
![](/Images/OutliningIndicators/InBlock.gif)
66
![](/Images/OutliningIndicators/InBlock.gif)
67
![](/Images/OutliningIndicators/InBlock.gif)
68
![](/Images/OutliningIndicators/InBlock.gif)
69
![](/Images/OutliningIndicators/InBlock.gif)
70
![](/Images/OutliningIndicators/InBlock.gif)
71
![](/Images/OutliningIndicators/InBlock.gif)
72
![](/Images/OutliningIndicators/InBlock.gif)
73
![](/Images/OutliningIndicators/InBlock.gif)
74
![](/Images/OutliningIndicators/InBlock.gif)
75
![](/Images/OutliningIndicators/InBlock.gif)
76
![](/Images/OutliningIndicators/InBlock.gif)
77
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
78
![](/Images/OutliningIndicators/InBlock.gif)
79
![](/Images/OutliningIndicators/InBlock.gif)
80
![](/Images/OutliningIndicators/InBlock.gif)
81
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
82
![](/Images/OutliningIndicators/InBlock.gif)
83
![](/Images/OutliningIndicators/InBlock.gif)
84
![](/Images/OutliningIndicators/InBlock.gif)
85
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
86
![](/Images/OutliningIndicators/InBlock.gif)
87
![](/Images/OutliningIndicators/InBlock.gif)
88
![](/Images/OutliningIndicators/InBlock.gif)
89
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
90
![](/Images/OutliningIndicators/InBlock.gif)
91
![](/Images/OutliningIndicators/InBlock.gif)
92
![](/Images/OutliningIndicators/InBlock.gif)
93
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
94
![](/Images/OutliningIndicators/InBlock.gif)
95
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
96
![](/Images/OutliningIndicators/InBlock.gif)
97
![](/Images/OutliningIndicators/InBlock.gif)
98
![](/Images/OutliningIndicators/InBlock.gif)
99
![](/Images/OutliningIndicators/InBlock.gif)
100
![](/Images/OutliningIndicators/InBlock.gif)
101
![](/Images/OutliningIndicators/InBlock.gif)
102
![](/Images/OutliningIndicators/InBlock.gif)
103
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
104
![](/Images/OutliningIndicators/InBlock.gif)
105
![](/Images/OutliningIndicators/InBlock.gif)
106
![](/Images/OutliningIndicators/InBlock.gif)
107
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
108
![](/Images/OutliningIndicators/InBlock.gif)
109
![](/Images/OutliningIndicators/InBlock.gif)
110
![](/Images/OutliningIndicators/InBlock.gif)
111
![](/Images/OutliningIndicators/InBlock.gif)
112
![](/Images/OutliningIndicators/InBlock.gif)
113
![](/Images/OutliningIndicators/InBlock.gif)
114
![](/Images/OutliningIndicators/InBlock.gif)
115
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
116
![](/Images/OutliningIndicators/InBlock.gif)
117
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
118
![](/Images/OutliningIndicators/InBlock.gif)
119
![](/Images/OutliningIndicators/InBlock.gif)
120
![](/Images/OutliningIndicators/InBlock.gif)
121
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
122
![](/Images/OutliningIndicators/InBlock.gif)
123
![](/Images/OutliningIndicators/InBlock.gif)
124
![](/Images/OutliningIndicators/InBlock.gif)
125
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
126
![](/Images/OutliningIndicators/InBlock.gif)
127
![](/Images/OutliningIndicators/InBlock.gif)
128
![](/Images/OutliningIndicators/InBlock.gif)
129
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
130
![](/Images/OutliningIndicators/InBlock.gif)
131
![](/Images/OutliningIndicators/InBlock.gif)
132
![](/Images/OutliningIndicators/InBlock.gif)
133
![](/Images/OutliningIndicators/InBlock.gif)
134
![](/Images/OutliningIndicators/InBlock.gif)
135
![](/Images/OutliningIndicators/InBlock.gif)
136
![](/Images/OutliningIndicators/InBlock.gif)
137
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
138
![](/Images/OutliningIndicators/InBlock.gif)
139
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
140
![](/Images/OutliningIndicators/InBlock.gif)
141
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
142
![](/Images/OutliningIndicators/InBlock.gif)
143
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
144
![](/Images/OutliningIndicators/InBlock.gif)
145
![](/Images/OutliningIndicators/InBlock.gif)
146
![](/Images/OutliningIndicators/InBlock.gif)
147
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
148
![](/Images/OutliningIndicators/InBlock.gif)
149
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
150
![](/Images/OutliningIndicators/InBlock.gif)
151
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
152
![](/Images/OutliningIndicators/InBlock.gif)
153
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
154
![](/Images/OutliningIndicators/InBlock.gif)
155
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
156
![](/Images/OutliningIndicators/InBlock.gif)
157
![](/Images/OutliningIndicators/InBlock.gif)
158
![](/Images/OutliningIndicators/InBlock.gif)
159
![](/Images/OutliningIndicators/InBlock.gif)
160
![](/Images/OutliningIndicators/InBlock.gif)
161
![](/Images/OutliningIndicators/InBlock.gif)
162
![](/Images/OutliningIndicators/InBlock.gif)
163
![](/Images/OutliningIndicators/InBlock.gif)
164
![](/Images/OutliningIndicators/InBlock.gif)
165
![](/Images/OutliningIndicators/InBlock.gif)
166
![](/Images/OutliningIndicators/InBlock.gif)
167
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
168
![](/Images/OutliningIndicators/InBlock.gif)
169
![](/Images/OutliningIndicators/InBlock.gif)
170
![](/Images/OutliningIndicators/InBlock.gif)
171
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
172
![](/Images/OutliningIndicators/InBlock.gif)
173
![](/Images/OutliningIndicators/InBlock.gif)
174
![](/Images/OutliningIndicators/InBlock.gif)
175
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
176
![](/Images/OutliningIndicators/InBlock.gif)
177
![](/Images/OutliningIndicators/InBlock.gif)
178
![](/Images/OutliningIndicators/InBlock.gif)
179
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
180
![](/Images/OutliningIndicators/InBlock.gif)
181
![](/Images/OutliningIndicators/InBlock.gif)
182
![](/Images/OutliningIndicators/InBlock.gif)
183
![](/Images/OutliningIndicators/InBlock.gif)
184
![](/Images/OutliningIndicators/InBlock.gif)
185
![](/Images/OutliningIndicators/InBlock.gif)
186
![](/Images/OutliningIndicators/InBlock.gif)
187
![](/Images/OutliningIndicators/InBlock.gif)
188
![](/Images/OutliningIndicators/InBlock.gif)
189
![](/Images/OutliningIndicators/InBlock.gif)
190
![](/Images/OutliningIndicators/InBlock.gif)
191
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
192
![](/Images/OutliningIndicators/InBlock.gif)
193
![](/Images/OutliningIndicators/InBlock.gif)
194
![](/Images/OutliningIndicators/InBlock.gif)
195
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
196
![](/Images/OutliningIndicators/InBlock.gif)
197
![](/Images/OutliningIndicators/InBlock.gif)
198
![](/Images/OutliningIndicators/InBlock.gif)
199
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
200
![](/Images/OutliningIndicators/InBlock.gif)
201
![](/Images/OutliningIndicators/InBlock.gif)
202
![](/Images/OutliningIndicators/InBlock.gif)
203
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
204
![](/Images/OutliningIndicators/InBlock.gif)
205
![](/Images/OutliningIndicators/InBlock.gif)
206
![](/Images/OutliningIndicators/InBlock.gif)
207
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
208
![](/Images/OutliningIndicators/InBlock.gif)
209
![](/Images/OutliningIndicators/InBlock.gif)
210
![](/Images/OutliningIndicators/InBlock.gif)
211
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
212
![](/Images/OutliningIndicators/InBlock.gif)
213
![](/Images/OutliningIndicators/InBlock.gif)
214
![](/Images/OutliningIndicators/InBlock.gif)
215
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
216
![](/Images/OutliningIndicators/InBlock.gif)
217
![](/Images/OutliningIndicators/InBlock.gif)
218
![](/Images/OutliningIndicators/InBlock.gif)
219
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
220
![](/Images/OutliningIndicators/InBlock.gif)
221
![](/Images/OutliningIndicators/InBlock.gif)
222
![](/Images/OutliningIndicators/InBlock.gif)
223
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
224
![](/Images/OutliningIndicators/InBlock.gif)
225
![](/Images/OutliningIndicators/InBlock.gif)
226
![](/Images/OutliningIndicators/InBlock.gif)
227
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
228
![](/Images/OutliningIndicators/InBlock.gif)
229
![](/Images/OutliningIndicators/InBlock.gif)
230
![](/Images/OutliningIndicators/InBlock.gif)
231
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
232
![](/Images/OutliningIndicators/InBlock.gif)
233
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
234
![](/Images/OutliningIndicators/InBlock.gif)
235
![](/Images/OutliningIndicators/InBlock.gif)
236
![](/Images/OutliningIndicators/InBlock.gif)
237
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
238
![](/Images/OutliningIndicators/None.gif)
239
![](/Images/OutliningIndicators/None.gif)
的确写得比较爽,体现了“以人文本”的思想. 编译器似乎是程序员的一个朋友,为程序员分担了很多工作,编译器会经常猜到程序员写的是什么,当然前提是你写的程序为编译器的推断提供了充分合理的理由。我想这也是一个趋势吧,让程序员coding时更惬意,更自然,更像”人”一样开发,而不是处处要迎合机器的思维.恩,也许不久以后CSharp会像word一样普及的,期待中...