技术开发 频道

LINQ to SQL基础


3. 隐含类型局部变量
    这是一个语言层面的功能,局部变量被声明为var,这个声明被视为隐含类型局部变量声明,然后由编译器根据局部变量初始化表达式来推断变量的类型。如下面的声明:
Code2:
var integer = 10; 

var name = "Terry Lee";

var numbers = new int[] { 1, 2, 3 };
   要注意的是var在这里是仅仅是一个关键字,它并不是C#3.0中的一种新的类型,而是负责告诉编译器,该变量需要根据初始化表达式来推断变量的类型,上面的语句相当于:
int integer = 10; 

string name = "Terry Lee";

int[] numbers = new int[] { 1, 2, 3 };
   在Code2中,变量integer仍然具有强类型,可以做如下测试:
Code4:
var integer = 10; 

integer = "Terry Lee";
   编译时会报Cannot implicitly convert type 'string' to 'int'错误。
    在这里我们将变量类型的推断任务交给了编译器,那就需要在声明的时候为变量赋值,也不能赋值为null,否则编译器也是无法推断的。另外,var只能用于局部变量,而不能用于字段和属性。

4. 自动属性

   自动属性仍然是一个语言层面的功能,它可以使我们不用编写get/set操作以及字段,这一切都由编译其来完成。这样可以简化我们的代码,使我们的代码看起来更加的优雅。如下代码片断所示:
Code5:

public class Customer 
{
public String Name
{
get;
set;
}

public int Age
{
get;
set;
}
}

public class Demo
{
public static void Main()
{
Customer c = new Customer();
c.Name = "TerryLee";
}
}
0
相关文章