深入了解隐式属性和带实现值属性的区别(属性中get{},set{}访问器小解)

18 篇文章 0 订阅

//在属性中定义
public string name{get;set;}//隐式属性

private string name;
public string Name
{
    get { return name; }
    set { name= value; }
}

两者都是为了数据安全,封装字段用的。

正常来说,两者的使用是相同的,前一种的写法由编译器生成后一种的代码;

public string name{get;set;}这种写法是dotNet2.0以后才可以这样写,目的是减轻程序员的工作量,它的实现就是楼上讲的由编译器生成

当然如果简单get没写实现,set写了实现是不行的,但在前面加上抽象关键字abstract,对应的没写实现的就与抽象方法一样;
get和set还可以再加上public等访问级别。


区别是:

如果你要对属性做一些判断,如字符串不能为空,整数必须大于零等等这样的操作,那么你就没办法利用

public string name{get;set;}

这样的便利,必须老老实实写形如

public string Name
{
    get { return name; }
    set { name= value; }
}
这样的代码


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值