c# - 如何将比较逻辑实现到数组的集合属性中
问题描述
int maxHeight;
int minHeight;
public int [ , ] Heights
{
get;
set
{
if(value > maxHeight)
{
print("Max Height Changed !");
}
if(value < minHeight)
{
print("Min Height Changed !");
}
}
}
当索引中的值发生变化时,我想为数组值实现立即比较逻辑。如果新值大于最近的最大值,或者小于最近的最小值,则必须提示。但是,如果不创建自定义方法,我找不到将其直接实现到 set 属性中的方法。
解决方案
在 setter 中,value
是要为属性设置的值。所以在这种情况下,value
将是一个int[,]
,不能直接与单个 比较int
。如果您想捕获数组中值的变化,则无法使用数组属性本身的 setter 来执行此操作。换句话说,只有在您设置整个数组属性的值时才会调用您的 setter(即使您将其设置为已设置 tp 的同一数组)。
简而言之,没有办法捕捉到二维数组的变化。您将封装数组并实现自己的索引器,将自定义逻辑添加到索引值的设置中。
推荐阅读
- javascript - 如何在加载时模拟移动设备上的点击事件
- airflow - 带有 postgres 的 Airflow 的“db init”
- sql - 尝试使用标识列添加新条目时,EF6 引发并发异常
- node.js - TypeError:res.send 不是函数错误
- javascript - 反应 onClick 不渲染
- php - 在 PUT 提取中触发 CORS 问题“已被 CORS 策略阻止:没有 'Access-Control-Allow-Origin' 标头”,标头设置 WORDPRESS
- webpack - webpack process.env.NODE_ENV 未定义
- css - LESS/CSS:隐藏不包含某个属性的元素下面的所有后续元素
- php - 如何在laravel中按特定月份获取用户订单数据?
- kubernetes-helm - 无法登录 CockroachDB 安全集群