C#事件在财产价值变化时触发

时间:2012-08-14 06:37:02

标签: c# properties

您好我有属性Status的文档类(例如doc.Status),情况如下:当Status属性设置为confirm时我想创建另一个相关文档。当doc状态设置为不是已确认时,我想删除该相关文档(如果存在)。实现这一目标的最佳方法是什么?要在属性集方法中设置if子句,还是在属性值发生更改时使用相同的if子句触发事件?

4 个答案:

答案 0 :(得分:1)

我肯定会参加活动解决方案。这将使您的解决方案更加分离,如果您希望将来能够更好地使用代码中其他位置的功能,则可以更轻松地使用该功能。

答案 1 :(得分:1)

这在很大程度上取决于您的应用。 通常,您的模型应该(我假设您的文档类所属)不应包含业务逻辑。它应该只提供允许对数据进行基本操作的数据和方法以及回调。

您最好implement your own event并以您需要的方式在业务逻辑中处理它。

答案 2 :(得分:1)

这取决于您希望为您的功能实现的行为。

1)在set属性中使用“If Clause”: 在此方法中,一旦您将编译文档类,就无法更改行为,因为set属性将变为硬编码。因此,如果要做的唯一事情是创建和删除相关文档,那么这种方法更可取。

2)在“status”属性中创建更改事件: 当您想要将“status”属性的任何更改与文档类之间执行后执行的操作分离时,应使用此功能。如果在“status”属性更改后要执行的业务逻辑在编译文档类时没有确定,那么这种方法更可取。

选择权是你的!!

答案 3 :(得分:0)

“很高兴有办法”将生成一个事件并将一个方法连接到它将创建另一个文档。如果其他人可以为您的代码提供服务,这将是一种更加透明的方式来了解您的意图。