如何解决如何将比较逻辑实现到数组的set属性中
int maxHeight;
int minHeight;
public int [,] Heights
{
get;
set
{
if(value > maxHeight)
{
print("Max Height Changed !");
}
if(value < minHeight)
{
print("Min Height Changed !");
}
}
}
当索引中的值更改时,我想为数组值实现立即比较逻辑。如果新值大于最近的最大值,或者小于最近的最小值,则必须提示。但是,如果不创建自定义方法,我找不到直接将其实现到set属性中的方法。
解决方法
在设置器中,value
是将为属性设置的值。因此,在这种情况下,value
将是int[,]
,不能直接与单个int
比较。如果要捕获数组中 中值的变化,则无法使用array属性本身上的setter来实现。换句话说,只有在设置整个数组属性的值时,才会调用setter(即使将其设置为与已经设置了tp的数组相同)。
简而言之,没有办法捕获对二维数组的更改。您将封装数组并实现自己的索引器,将自定义逻辑添加到索引值的设置中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。