字段和属性的区别?分别有什么作用?

Crazy Code Farmer 2017-10-02 12:05:57
很多初学者,在老师带着写程序时,经常用到属性和字段。只是盲目跟着写,却不知道,区别和作用。我的个人理解和认识分享给大家。字段是用来存数据的,考虑到数据的安全性,我们通常定义为私有的,但是一旦定义为私有的外界就不能访问了;于是我们就考虑到用属性,它起到对字段保护作用,它定义为公共的,我们可以定义其自动属性{get;set;}通过开发环境的编译可生成对应的字段。它负责与外界打交道安全保护了数据。
...全文
2229 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
淡若烟云Q 2019-06-24
  • 打赏
  • 举报
回复
exception92 2017-10-03
  • 打赏
  • 举报
回复
属性其实就是方法,也就是get set 方法,编译器会自动在类中生成以get set开头的方法来进行获取设置操作数据操作。 至于字段它可以直接获取,没有方法体供操作。可以声明只读的,静态的字段,个人感觉就是特殊的"属性"。
MYsce 2017-10-03
  • 打赏
  • 举报
回复
属性封装了字段,属性就是方法里面有 get set
  • 打赏
  • 举报
回复
基本上就是你说的作用。属性是方法(method),只不过语法上巧妙地隐藏了 get_、set_ 的方法前缀,使得看起来很像字段。这样我们可以先写一个
publi string
 ABC;
字段,先把程序跑起来,然后将来改为
public string ABC{get;set;}
之后,重新编译一下就通过了,而思想概念上没任何负担就把字段处理功能扩展了,不需要修改几百上前行代码。
Crazy Code Farmer 2017-10-02
  • 打赏
  • 举报
回复
嗯!你的更加形象,加代码,以后还的像你多多交流和学习。
吉普赛的歌 2017-10-02
  • 打赏
  • 举报
回复
对于普通的没有特殊要求的字段属性, 你可以认为他们是一致的。 有一些比如年龄之类的, 可以用 属性来限制以保证其合理性 private int age = 0; public int Age { get{ return age; } set{ if(value>=130 || value<0) throw new Execption("年龄不合理"); age = value; } }
  • 打赏
  • 举报
回复
以上的解释很形象,属性其实就是在字段的基础上拓展了功能的特殊"方法"

110,556

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧