c# - 阵列变化事件

标签 c# arrays

我有一个名为 Value 的数组属性:

public string[,] Value { get; set; }

我想在数组(不是整个数组)的任何值发生变化时调用 Save() 方法。

有没有简单的实现方法?

最佳答案

不是真的。数组是非常原始的类型,当事情发生变化时不会通知您。

您可以做的最好的事情是创建一个像二维数组一样的自定义类型,但另外它会在元素发生变化时引发一个事件。然后,您当前的类(class)将订阅此事件并调用 Save()

一些额外的评论:

  • 您可能不想公开 setter,这允许人们更改您指向的数组。您可能只想公开 getter,以便它们可以更改值,但不能更改整个数组。
  • 我提到的可能已经有一种类型,但我不知道。
  • 如果您无论如何都要更改 API,那么在您的类中公开索引器可能更有意义,然后在调用索引器的 setter 时调用 Save()。见下文。
    public string this[int x, int y] 
    { 
        get { return this.localArray[x,y]; }
        set 
        { 
            this.localArray[x,y] = value;
            this.Save();
        }
    }

关于c# - 阵列变化事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5449721/

相关文章:

c# - 将程序集安装到 GAC

c# - 关闭一个表单然后调用另一个

Javascript 使用 For 循环创建动态表,其中包含要在其中显示的数组

php - 如何在PHP中对数组中的时间值求和

c# - .Net Core如何实现SQLAdapter ./DataTable函数

c# - 第二个参数干扰通用处理程序

c# - C# 上的边缘检测

javascript - 有没有一种简单的方法可以按范围对 js 数组值进行分组?

javascript - 在数组中搜索字符串的最佳方法

c - 初始化一个结构对象数组,这些对象之前存储在结构变量中