方法执行动作并返回布尔值
本文关键字:返回 布尔值 执行 方法 | 更新日期: 2023-09-27 17:51:05
我正在尝试在本地数据集和远程数据集之间进行连接。当我运行我的程序时,下面的方法被调用。
public void CheckCanDo()
{
if (LocalAcess.HasNonSyncedItems())
{
if (RemoteAcess.TryToSync())
{
LocalAcess.RefreshDateLastConnection();
CanDoThing = true;
}
else
{
if(LocalAcess.HasExpired)
{
CanDoThing = false;
return;
}
}
}
CanDoThing = true;
}
是否适合有一个方法执行操作,并返回一个布尔值作为一种方式来控制应用程序的流?它是否违反了c#的一些良好实践?有没有更好的办法?
在"CheckCanDo()"之前将"void"替换为"bool",而不是设置变量等,以返回结果;只需键入return一个bool值,例如:"返回条件;"。这是一个更好的方法
public bool CheckCanDo()
{
if (LocalAcess.HasNonSyncedItems())
{
if (RemoteAcess.TryToSync())
{
LocalAcess.RefreshDateLastConnection();
return true;
}
else
{
if (LocalAcess.HasExpired)
{
return false;
}
}
}
return true;
}
你可以试试这个…我将建议您保持业务逻辑严格,并删除太多的,否则可能会将业务逻辑转换成一团糟!!
public bool CheckCanDo()
{
if (!LocalAcess.HasNonSyncedItems())
{
return false;
}
// It might be !RemoteAcess.TryToSync() || LocalAcess.HasExpired
// I did not really understand that part
if (!RemoteAcess.TryToSync() && LocalAcess.HasExpired)
{
return false;
}
LocalAcess.RefreshDateLastConnection();
return true;
}
这个博客可能会帮助你更多…如何避免"如果"链吗?