C# 属性的定义和基础使用

属性的结构:

修饰符  类型 属性的名字{
	set{
				//set代码
	   }
	get{
				//get代码
	   }
}

属性的结构注意事项:
1.定义属性需要属性的名字和类型。
2.属性包含get块和set块,每种块最多有一个,一个属性里面不允许出现两个相同的块,同时一个属性中,必须要有get块或se块中的一个。
3.简写的属性:

public int Myint { set; get; }

我们经常会看到这种代码,系统会为我们自动生成一个小写的myint字段。

属性的标准例子

class Program
    {
        static void Main(string[] args)
        {
            MyClass myClass=new MyClass();
            myClass.Myint = 200;
            int num = myClass.Myint;
            Console.WriteLine(num);
        }
    }

    class MyClass
    {
        public int Myint
        {
            set
            {
                Console.WriteLine("SetInt");
                Console.WriteLine(value);
            }
            get
            {
                Console.WriteLine("GetInt");
                return 100;
            }
        }
    }

程序运行的结果为:
SetInt
200
GetInt
100
从运行的结果可以看出,当给属性赋值的时候会调用属性中的set块,使用属性的值的时候会调用属性的get块。
属性的使用方法和字段的使用方法相同。

属性的作用

当学习完属性的结构和小例子之后,可以写一个属性,但是属性又有什么用呢?只是简单的赋值和调用?可以用在什么场合呢?

我们在使用字段的时候,习惯上把字段设置为私有的,这样外界就不能修改字段的值,然后我们通过定义属性来设置和取得字段中的值。有的同学会问了,对私有字段的设置和获取,函数可以同样实现。对比这两种方法:

class MyClass
{

    private int x;
    public int Myint        //使用属性
    {
        set { x = value; }
        get { return x; }

    }
    public int Getint()		//使用函数
    {
        return x;
    }
    public void Setint(int x)
    {
        this.x = x;
    }
}

结果很明显,使用属性更方便,代码的结构也更合理,这样的对比也可以看出
属性的本质就是外界访问私有字段的入口,本身就是方法,通过get方法和set方法对私有字段进行操作。

属性的优点:

1.设置属性的set块和get块的有无,可以设置对私有字段的只读或只写。
2.通过改变set块或者get块的修饰符,设置本地可读外界不可读的(或本地可写,外界不可写)的情况。

   public int Myint        //使用属性
    {
        set { x = value; }
       private get { return x; }
    }

加上private 修饰符后,只允许本地可读,外界不可读,只能写。

欢迎评价和指正!谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值