初探C#3.0
2009-07-01 07:07:36 来源:WEB开发网变量声明
这里要说的是var。var是C#3.0中提供的用于声明变量的关键字,开发人员可以不考虑变量的类型就可以对变量进行声明(这一点用法非常类似Javascript)。但是两者还是有些差异。
相同点:用var来声明任何类型的局部变量。
不同点:它仅仅负责告诉编译器,该变量需要根据初始化表达式来推断变量的类型,而且只能是局部变量。
我们可以这样声明变量:
var i= 10;
var name = "edisundong";
var numbers = new int[] { 1, 2, 3 };
var仅仅是个关键字,它并不是C#3.0中的一种新的类型,而是负责告诉编译器,该变量需要根据初始化表达式来推断变量的类型,上面的语句相当于
int i= 10;
string name = " edisundong ";
int[] numbers = new int[] { 1, 2, 3 };
这里还需要注意几点:
1.在声明时必须同时赋值。
2.在使用var声明一个局部变量后,他仍然具备强类型。
var integer = 10;
integer = " edisundong ";
编译时会报Cannot implicitly convert type string to int错误。
3. 初始化器表达式的编译期类型不能够是空(null)类型。
4. var的声明仅限于局部变量
扩展方法
以前如果我们想扩展一个类的功能必须直接源自于它并且从学其中的方法,在C#3.0中,介绍了一种很快捷的扩展功能的方法。
public static class StudentExtensionMethods
{
public StudentExtensionMethods()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
public static string GetStudentInformation(this Student stu)
{
return string.Format("Name: {0} {1} Age: {2}", stu.StuName,
stu.StuAge, stu.StuClass);
}
}
定义一个类,其中定义一个方法,注意:这个类和方法都是static的,并且方法的参数是类Student。这样,Student类就可以扩展GetStudentInformation方法:
Student stu2 = new Student
{
StuName = "Brian",
StuAge = "12",
StuClass = "1班"
};
Console.WriteLine(stu2.GetPersonInformation());
小结:初学了下C#3.0,感觉带来了不少惊喜,其中有很多新的特性是以前所未知的。C#3.0的新特性应该还不止这些,还需继续学习研究。
更多精彩
赞助商链接