本文主要是介绍C#3.0新特性系列:自动属性(Automatic Properties),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一.自动属性简介对于任何一个C#开发人员来说,对于下面这样的代码片段应该都是不陌生的:
public class Person
{
private String _name;
public String Name
{
get { return _name; }
set { _name = value; }
}
private int _age;
public int Age
{
get { return _age; }
set { _age = value; }
}
private String _email;
public String Email
{
get { return _email; }
set { _email = value; }
}
}
在C# 3.0中提供了一种新的语言特性可以让我们的编码更加简洁、更加优雅,我们不用手工声明一个私有的字段和编写默认的get/set操作。在编译的时候,编译器会自动为你生成对应的私有变量,变量名自动生成,不会重复。也就是说,上面的代码片段用自动属性可以变为:
public class Person
{
public String Name { get; set; }
public int Age { get; set; }
public String Email { get; set; }
}
21行的代码变成了6行,是不是非常的简单呢?使用时跟我们以前的使用没什么区别:
二.注意的问题
1.要同时实现get和set访问器,不能使用自动属性只实现其中的一种,遇到这种情况时只能按以前的办法自己动手丰衣足食了。下面的代码无法编译通过:
public class Person
{
public String Name { get; }
public int Age { get; set; }
public String Email { get; set; }
}
编译器会提示:Automatically implemented properties must define both get and set accessors
2.如果get和set访问器可访问级别不同时,是可以使用的,如下面的代码可以编译通过:
public class Person
{
public String Name { get; internal set; }
public int Age { internal get; set; }
public String Email { get; set; }
}
这篇关于C#3.0新特性系列:自动属性(Automatic Properties)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!