zoukankan      html  css  js  c++  java
  • ASP.NET3.5——自动属性(AutoImplemented 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代码反汇编器)工具来分析程序集或者模块的内容。

  • 相关阅读:
    结构体struct和typedef后面接指针的含义
    C++中关于指针初始化和使用NULL的理解
    (虚)继承类的内存占用大小
    为什么构造函数不能为虚函数
    C++中变量自动初始化的问题
    CY7C68013A的一点总结
    Altium designer总结
    在Linux系统上限制远程登录的IP
    linux系统如何限制其他用户登录
    使用秘钥对登录Linux系统
  • 原文地址:https://www.cnblogs.com/iceicebaby/p/1945626.html
Copyright © 2011-2022 走看看