SET如何在C#中使用属性?
发布时间:2020-12-15 20:51:00 所属栏目:百科 来源:网络整理
导读:我想知道如果set不仅仅设置私有成员变量的值,它在一个属性中是如何工作的.假设我的班级中有一个私人成员(private int myInt). 例如,我可以确保返回的值不是负数 get{ if(myInt 0) myInt = 0; return myInt;} 使用SET,我所能做的就是像这样影响私有变量 set {
我想知道如果set不仅仅设置私有成员变量的值,它在一个属性中是如何工作的.假设我的班级中有一个私人成员(private int myInt).
例如,我可以确保返回的值不是负数 get { if(myInt < 0) myInt = 0; return myInt; } 使用SET,我所能做的就是像这样影响私有变量 set { myInt = value; } 我没有在任何一本书中看到我如何能做到更多.如果在影响myInt的值之前我不想做一些操作怎么样?假设:如果值为负,则影响0到myInt. set { //Check if the value is non-negative,otherwise affect the 0 to myInt } 谢谢你的帮助 解决方法
你可以做你想做的.
没有什么可以阻止你: set { if (value < 0) myInt = 0; else myInt = value; } (或者更紧凑的版本) 这就是设置者和吸气剂的设计目标. 如果值超出范围,您可以添加日志记录,调试断言甚至引发异常. 但 您的Setters和Getters的用户不会期望他们进行“大量”处理或有任何副作用.所以他们应该只影响他们的支持变量而不是处理1000个文本文件(作为例子).与数据库的连接很好,但是如果要获得大量数据,则应该使用显式函数替换Get. 另外,请注意@StingyJack在他的回答中所说的内容. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby – 如何记录提供块的方法是可选的?
- IBM Swift Sandbox-在PC上写Swift小程序
- 后台调度解析xml处理数据二次开发
- Spark存储Parquet数据到Hive,对map、array、struct字段类型
- xml解析中如何将接口返回的13位time转化为正常的时间
- ruby-on-rails – Heroku不会更新资产修改
- WPF中的依赖项属性
- c# – Lightswitch HTML Client Preview2中的字段格式
- c# – 在asp.net mvc Twitter OAuth2登录后获取oauth凭据
- ruby-on-rails – 在lib类中的render_to_string不起作用