无参属性

属性只不过是一种“高级字段c#反编译软件,与字段相比,属性实现了对字段的封装

CLR提供了属性的机制,简化写法c#反编译软件,这样属性就没有任何特殊行为,也成为自动属性:

public int  Age { get; set; }

无参属性只是语法糖,反编译后编译器仍旧会自动为我们生成get和set方法以及一个支持字段,本质上就是一个或者两个方法,只是在我们客户端代码看起来更像是一个字段而已。

只读和只写属性

只读:

public int Age { get; } 

此时这个属性就只是只读了,初始化这个属性的值后,就再也无法更改它的值。

带有逻辑的属性

我们可以通过给get和set加入代码控制属性的范围。

        private int age;
        public int Age {
            get {
                return age;
            }
            set {
                if (value < 0) {
                    throw new ArgumentOutOfRangeException("Age",value,"Age必须大于等于0");
                }
                age = value;               
            }
        }

c#反编译软件_r开头的c语言编译软件_c语言编译软件

有参属性

有参属性又叫索引器,它是重载[]操作符的一种方式,让对象以类似数组的方式来存取。

class Program
{
        static void Main(string[] args)
        {
            MyClass myClass = new MyClass();
            Console.Write(myClass[1]);	// 李四
            Console.ReadKey();
        }
}
public class MyClass
    {
        private string[] _names = { "张三", "李四", "王五", "赵六", "田七" };
        public string this[int index]
        {
            get
            {
                if (index = _names.Length)
                {
                    throw new ArgumentException();
                }
                return _names[index];
            }
            set { _names[index] = value; }
        }
    }

属性的意义

通过属性的封装,保留了与外部交互的能力,又实现了可靠的读写机制。

例如ATM机可以存取钱,查询余额等,但是它为什么可以做到这些,怎么做的,比如钱是怎么吐出来的我们不需要知道,我们只需要知道一些简单的操作步骤即可达成我们的目的。通过封装,类型只需要向外部提供它应该知道的信息。

———END———
限 时 特 惠:本站每日持续更新海量各大内部创业教程,一年会员只需128元,全站资源免费下载点击查看详情
站 长 微 信:jiumai99

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注