ASP.NET3.5——自动属性(Auto-Implemented Properties)

/// <summary>
/// AutomaticProperties(自动属性)的摘要说明
/// </summary>
public class AutomaticProperties
{
    public int ID { get; set; }

    // 上面的ID属性(自动属性)等同于下面的ID属性

    // private int _id;
    // public int ID
    // {
    //     get { return _id; }
    //     set { _id = value; }
    // }
}

自动属性可以避免原来这样我们手工声明一个私有成员变量以及编写get/set逻辑,在VS2008中可以像下面这样编写一个类,编译器会自动地生成私有变量和默认的get/set 操作。你也可以分别定义get和set的“protected”等访问级别。

在.Net2.0框架下,我们可以这样写一个User类:

public class User
{
    private int _id;
    private string _name;
    private int _age;
    public int Id
    {
        get { return _id; }
        set { _id = value; }
    }
    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }
    public int Age
    {
        get { return _age; }
        set { _age = value; }
    }
}

现在,可以这样简化:

public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}

像上面这样的空的get/set属性的话,它会自动为你在类中生成一个私有成员变量,对这个变量实现一个公开的getter 和setter。我们可以使用.NET开发环境所提供的ildasm.exe(IL代码反汇编器)工具来分析程序集或者模块的内容。

posted @ 2011-01-26 16:44  asp_net老友记  阅读(457)  评论(1编辑  收藏  举报