【发布时间】:2015-11-12 07:39:38
【问题描述】:
我有一个方法:
- 检查数据是否被修改
- 如果是,询问用户:“您要保存吗?” (是/否/取消)
- 如果回答是,则保存数据
- 返回一个布尔值,无论用户是否回答了“取消”,在这种情况下,调用方方法需要中止其 Form.Close() 事件。
问题(相互关联):
- 我想不出该方法的正确名称。
- 它同时做很多事情。
- 布尔返回类型不是很清楚。我可以直接返回用户的答案,但使用起来会稍微复杂一些,因为调用者必须将函数的返回值与 Cancel 常量进行比较,而不是与 True 进行比较。
你有什么建议吗?谢谢!
Private Function CancelDueToUnsaved() As Boolean
If Not _data.Modified Then Return False
Dim answ = MsgBox("Save changes?", MsgBoxStyle.YesNoCancel + MsgBoxStyle.Question, "")
If answ = MsgBoxResult.Yes Then SaveData()
Return (answ = MsgBoxResult.Cancel)
End Function
Private Sub Form_Closing(sender As Object, e As FormClosingEventArgs) Handles MyBase.FormClosing
If CancelDueToUnsaved() Then e.Cancel = True
End Sub
【问题讨论】:
-
有点基于意见的问题,但在你的鞋子里,我只想把它命名为 SaveChanges。试图涵盖方法名称中的所有功能是没有用的。覆盖基本动作,应该做的。请注意,我还反转了布尔值并专注于实际保存而不是取消......但这只是我的意见