我有一个方法 DoCleanUp(),它将要求用户继续,然后清除当前工作区。如果用户选择取消此过程,它将返回。
我的问题是,哪个签名最能表明“取消”?
bool DoCleanUp(); // return false to indicate canceled.
bool DoCleanUp(); // return true to indicate this method should be canceled.
void DoCleanUp(bool& cancel); // check parameter 'cancel' to see if this method was canceled.
更新:至于语言,它是 C++\CLI 或 C#。
UPDATE2:现在假设我必须在 DoCleanUp 方法中保存一个文件。我会提示一个对话框询问用户是否保存/不保存/取消文件。根据答案,这是我想出的:
void DoCleanUp();
DialogResult AskToSaveFile(); // return yes/no/cancel
void DoCleanUp( bool saveFile );
用法:
void DoCleanUp()
{
DialogResult result = AskToSaveFile();
if( result == DialogResult::Cancel ) return;
bool saveFile = (result == DialogResult::Yes) ? true : false;
DoCleanUp( saveFile );
}
然后通过调用 DoCleanUp(),您知道用户将有机会取消;
通过调用 DoCleanUp(bool saveFile),您可以控制是否保存文件,而无需询问用户。
这样更好看吗?