zoukankan      html  css  js  c++  java
  • C#:常规属性和自动实现的属性

    根据属性的实现方式,属性可分为自动实现的属性和常规属性。

    常规属性需要具体的人为的实现get访问器或者set访问器,而且一般需要有一个字段与之相对应;而自动实现的属性的get和set访问器的实现部分被省略掉了,而且代码中不需要有相对应的字段。

    常规属性:

        public class Person
        {
            //-----------------------
            //普通属性
            //-----------------------
            private string name;
            /// <summary>姓名</summary>
            public string Name
            {
                get
                {
                    return this.name;
                }
                set
                {
                    this.name = value;
                }
            }
        }

    自动实现的属性:

        public class Person
        {
            //-----------------------
            //自动实现的属性
            //-----------------------
            /// <summary>姓名</summary>
            public string Name
            {
                get;
                set;
            }
        }

    可以给自动实现的属性的get访问器或者set访问器添加访问权限修饰符(private,protected,internal),以控制该属性的访问权限。

    (*注意给get或者set访问器添加的访问权限修饰符的访问权限,必须比该属性整体的访问属性的访问权限要小)

    通过给get或者set访问器添加的访问权限修饰符,实现只读或者只写:

        public class Person
        {
            //-----------------------
            //自动实现的属性实现只读
            //-----------------------
            /// <summary>姓名</summary>
            public string Name
            {
                get;
                private set;
            }
        }
        public class Person
        {
            //-----------------------
            //自动实现的属性实现只写
            //-----------------------
            /// <summary>姓名</summary>
            public string Name
            {
                private get;
                set;
            }
        }

    自动实现的属性有以下几点需要注意:

    ①必须同时实现set访问器和get访问器,缺一不可;

    ②自动实现的属性,编译器在运行时会自动生成一个私有的字段,这个自动生成的字段不能够直接访问;

    ③当需要实现对数据的合法性验证或者其它特殊处理的时候不能用自动实现的属性。

  • 相关阅读:
    Neo.Geo系统视频硬件结构模拟 v2.0
    [原创] CPS1模拟器开发日志
    在博客园发现恶意群体回复打广告的
    [原创] Neo.Geo系统视频硬件结构模拟
    在 ASP.NET 中执行 URL 重写(读书笔记)
    c#中什么情况下用(int)什么情况下用Convert.ToInt32
    ASP.NET 例程完全代码版(7)——2.0中实现自配置的成员角色管理库
    Request.UrlReferrer详解
    .NET中获取电脑名、IP及用户名方法
    ASP.NET 2.0中的跨页面提交
  • 原文地址:https://www.cnblogs.com/PolarisSky/p/3871408.html
Copyright © 2011-2022 走看看