黑马程序员-自动属性

一般属性与自动属性区别:
先看示例代码
	
 
 
一般属性                                               自动属性                                     
class A { private int id; public int Id { get  { return id; }  set  { id=value; } } }class A { public int Id { get; set; } }
C#中用get和set对类的属性进行访问和设置,保障类中数据的安全。自动属性是不对字段进行逻辑验证的操作.由于自动属性可以省略后备字段,用自动属性,代码一般属性简明。这样子写,这两种方法没区别.
那么什么情况下用一般写法 什么情况下用自动写法?

你需要对这个变量做一些限制的时候 比如:要限制字段长度为5个字符以内
class A
{
private int id;
	public int Id
	{
		get{return  id ;}
		set{ if(value.Length<=5){ id=value ; }}
	}
}
简单的不需要限制,可以直接存取属性可以用自动属性,需要做出限制的就采用一般属性。
 
使用public,而不使用get/set,的确同样可以做到设置/读取,而使用get/set,最主要的是基于oop思想编程,使得“属性和行为分离”。
通过get/set可以设置某属性只读,也可以控制到某一层可读/可写,也可以通过设置条件使数据合法等。
class A
{
	private int  id;
	public int Id
	 {
		get{return id;}
		protected set
		{
		   if(value>=0)
			{
			    id=value;
			}
		}
	}
}
上述例子不使用get/set也同样可以做到,不过get/set使用起来更方便

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值