如何在不使用异常的情况下从方法返回字符串消息?


class Device
{
public void AssignDevice(string playerName)
{
if (IsAssigned())
{
string message = "This device is already assinged to a player";
MessageBox.Show(message);
}
else
{
this.playerName = playerName;
}
}
}

我试图使一个方法,返回一个字符串在messageBox中,如果它是真的,没有使用异常。有什么建议吗?这是在winforms中创建的。

就我而言,您应该能够在不使用异常的情况下获得响应。

MessageBox.Show(message);    
if (result == System.Windows.Forms.DialogResult.Yes)
{
// Closes the parent form.
this.Close();
}

或者直接查看microsoft文档

从技术上讲,您可以只返回一些字符串,例如错误消息或操作成功时的null:

// return error message or null on success
public string AssignDevice(string playerName) {
if (IsAssigned()) {
string message = "This device is already assigned to a player";

MessageBox.Show(message);
return message; 
}
else
this.playerName = playerName;

return message;
}

或使用Try模式:

// return true on success, false of error, message - error message  
public bool TryAssignDevice(string playerName, out string message) {
string message = null;
if (IsAssigned()) {
message = "This device is already assigned to a player";
return false; 
}
else
this.playerName = playerName;

return true;
}

使用

if (!TryAssignDevice(playerName, out var errorMessage)) {
MessageBox.Show(errorMessage); 
}

这种方法的缺点(除了一些返回值之外没有例外)是返回值很容易被忽略

相关内容

  • 没有找到相关文章

最新更新