加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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在他的回答中所说的内容.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读