我有一个名为 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/