下午闲着无聊,翻了翻很久之前买的书籍,看了一下dotNetFramework2.0后添加的特性,包括以下几点:
- 代码段。这个功能很早就知道了,Framework已经提供了很多代码段,我们也可以自定义代码段,不过之前一直没有用过,今天实践了一下,还是挺有意思的,这种代码自动生成的思想其实挺有用的。另外发现一点,Framework中提供的代码段中,关于C#和VB的数量明显不一样,不知道为啥C#要少呢?上网查了一下,说MSDN中提供了对C#代码段的扩展,可以下载下来试验一下。
- 重构。这个重要性就不用再废话了,之前通过IDE进行重构时,一直是在Eclipse中用,感觉非常方便。现在VS2005也加上这个功能了,感受了一下,和Eclipse差不多,一个比较好的地方是通过VS2005进行重构时,可以对同一个解决方案中不同的项目保持同步,这一点非常有用。
- 调试。VS2005可以支持Debug时对代码进行修改,这个特性已经用得非常频繁了。
- 可空类型。这个没用过,不太清楚在什么场合下最适用,或者说,在哪种情况下,不使用可空类型会造成非常大的麻烦,还请知道的人告诉我一下。关于可空类型,有以下代码
Code
public static void Test()
{
int? x = 1;
int y = 2;
y = (int)x;
x = y;
x = null;
y = x;
int xx = x ?? 1;
Console.WriteLine(xx);
} - 泛型。Java在1.5中加入了泛型,这样在使用1.5去编译之前的程序时,在集合类型变量的声明中总是会见到非常烦人的Warning,去提示需要去定集合类中元素的确切类型,这一点很让人不爽。dotNet在这方面做得很好,它对于同一种集合数据结构,提供了泛型和非泛型两种选择。
- 多维数组。这个不算是dotNetFramework2.0中新增的特性,这是我之前一直没有注意到的事情,见以下代码
Code
static void ArrayTestM()
{
int[,] nArrayHeight = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };
foreach (int n in nArrayHeight)
{
Console.WriteLine("{0}", n);
}
Console.WriteLine("二维数组输出结束!");
}
static void ArrayOfArray()
{
int[][] arrayA ={ new int[] { 1 }, new int[] { 1, 2 }, new int[] { 1, 2, 3 }, new int[] { 1, 2, 3, 4 }, new int[] { 1, 2, 3, 4, 5 } };
foreach (int[] ArrayN in arrayA)
{
foreach (int n in ArrayN)
{
Console.WriteLine("{0}", n);
}
}
Console.WriteLine("数组的数组输出结束!");
} - 强类型。对于property或者数据库Table中的字段来说,在访问方式上,之前比较常用的是采取字符串硬编码的方式进行访问,例如:
Code
string lastName = this.dataSet1.Tables["Employees“].Rows[0]["LastName"];Code
string lastName = this.northwindDataSet.Employees[0].LastName;