我希望每次在列表中更改值时触发一个方法。
与此相关的其他问题的最佳答案是使用我拥有的属性(如下所示)
然而,我认为如果我拒绝任何除了可以访问它更改的“核心”列表的属性之外的其他任何内容,我会认为这有助于防止任何意外错误(因为缺乏更好的理解这个术语是什么)。
下面是我带有get和set访问器的示例属性。
private List<Things>myPrivateList; // Only the Property should be able to access
private List<Things>MyPrivateList // Only the class its in can touch this
{
get { return myPrivateList; }
set
{
myPrivateList = value;
coolMethodThatNeedsToRunEverytime();
}
}
public List<Things>getMyPrivateList // Any class outside can read this
{
get { return myPrivateList; }
}
我可能会以错误的方式解决这个问题,知道你是否对我想要实现的目标有任何建议会很有用。非常感谢您提供的任何建议/示例。
答案 0 :(得分:1)
你可以用一个属性做你想做的事:
public List<Things>MyPrivateList // Only the class its in can touch this
{
get { return myPrivateList; }
private set
{
myPrivateList = value;
coolMethodThatNeedsToRunEverytime();
}
}
这样做,setter将是私有的,而getter是公共的