C# 有20个int变量,初始值为0,这几个变量通过事件会自增,如果这20个变量中有大于3的就弹窗,变为0,
时间: 2024-11-23 20:39:01 浏览: 13
在C#中,你可以使用委托和事件机制来实现这样的功能。首先,定义一个自定义事件:
```csharp
public delegate void ValueIncreased(int value); // 委托声明
public class Counter
{
private int count;
public event ValueIncreased ValueChanged;
public Counter()
{
count = 0;
}
public void Increment()
{
count++;
CheckValue();
OnValueChanged(count);
}
private void CheckValue()
{
if (count > 3)
{
Console.WriteLine($"Count ({count}) is greater than 3, resetting to 0");
count = 0;
RaiseEvent();
}
}
protected virtual void OnValueChanged(int value)
{
ValueChanged?.Invoke(value); // 触发事件
}
private void RaiseEvent()
{
ValueChanged?.Invoke(count); // 如果有订阅者,触发事件
}
}
```
然后,在需要监控这些计数器的地方,你可以创建`Counter`实例并订阅`ValueChanged`事件:
```csharp
Counter counter = new Counter();
counter.ValueChanged += (value) => MessageBox.Show($"Count changed to {value}"); // 弹窗显示
// 调用Increment方法模拟计数
for (int i = 0; i < 20; i++)
{
counter.Increment();
}
```
当其中任何一个计数器的值超过3时,它会自动重置并触发事件,从而执行相应的操作(在这个例子中是弹出消息框)。如果不需要弹窗,你也可以在事件处理程序中执行其他操作。
阅读全文