自动实现的属性有什么应用场合 在学习属性时有个疑问:自动实现的属性有什么应用场合?为了以后程序的扩展性吗?欢迎高手跟帖。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public string DeptName { get; set; }你指这吗??楼主 跟那种只是简单的get,set的属性没区别,只是不需要你再定义一个私有变量来存储值。编译器编译的时候自动给你生成了一个私有变量来存储属性的值。 问题是为什么要有这样的东西,对于开发者有什么实际意义?直接public string name;和public string Name{get;set;}对于实际应用有何影响? public string Name{get;}这个属性就只可读不可写public string Name{set;}只可写不可读 自动实现的属性,必须是可读可写的,换言之,编译器肯定要同时生成get,set方法;采用这种方式,编译器会在内部自动生成一个私有字段的元数据,名字是不确定的,所以代码只能方法属性。好处是:你以后决定自己实现get/set方法时,访问属性的代码不必重新编译,但是声明为Name为字段那么以后又想改为属性那么访问字段的所有代码必须重新编译,以便能访问属性的方法。 顶楼上, 自动属性必须同时定义get;和set访问器, 否则就不能通过编译,并且也是没有实际意义的。 私以为原因有二:1. 不直接暴露Field,这是一个良好的设计习惯2. 为了象我这样的懒人少敲几个字母 属性是特殊方法。.net并没有属性这种东西,这是c#给你的功能。c#把它编译为set_XXX、get_XXX命名的方法。 public string DeptName { get; set; }编译的时候自动生成一个私有变量来存储属性的值。如果给出get和set的代码则灵活度,安全性更高,可以更好的控制。 C# windows mobile 扫描条形码后如何自动执行扫描事件 会GDI+进来看看 怎么实现虚拟圆规! 大家帮我看看用label显示数据库最后一行哪里出了问题 大虾请进,想请问如何读取这样的文件,顶者有分啊 如何调用同一工程内的webservice 求c#中string写入文件和从文件读出的方法 如何设计定时器 C#对XML的处理,问大一个问题。很多人知道的。 这条题目如何做? 有关PropertyGrid的问题!大家帮帮忙!saucer请进.在线等 请教参数化查询的问题 解释一下!
public string Name{get;set;}对于实际应用有何影响?
public string Name{get;}
这个属性就只可读不可写
public string Name{set;}
只可写不可读
采用这种方式,编译器会在内部自动生成一个私有字段的元数据,名字是不确定的,所以代码只能方法属性。
好处是:
你以后决定自己实现get/set方法时,访问属性的代码不必重新编译,但是声明为Name为字段那么以后又想改为属性那么访问字段的所有代码必须重新编译,以便能访问属性的方法。
1. 不直接暴露Field,这是一个良好的设计习惯
2. 为了象我这样的懒人少敲几个字母
编译的时候自动生成一个私有变量来存储属性的值。如果给出get和set的代码则灵活度,安全性更高,可以更好的控制。