我尝试在本地数据集和远程数据集之间建立连接。当我运行我的程序时,调用下面的方法。
public void CheckCanDo()
{
if (LocalAcess.HasNonSyncedItems())
{
if (RemoteAcess.TryToSync())
{
LocalAcess.RefreshDateLastConnection();
CanDoThing = true;
}
else
{
if(LocalAcess.HasExpired)
{
CanDoThing = false;
return;
}
}
}
CanDoThing = true;
}
让方法执行动作并返回布尔值作为控制应用程序流的方法是否合适?它是否违反了C#的一些好习惯?还有更好的方法吗?
答案 0 :(得分:0)
替换"无效"用" bool"之前" CheckCanDo()"而不是设置变量等,以返回结果;只需输入一个bool,例如"返回条件;"。这真的是一种更好的方法。
答案 1 :(得分:0)
public bool CheckCanDo()
{
if (LocalAcess.HasNonSyncedItems())
{
if (RemoteAcess.TryToSync())
{
LocalAcess.RefreshDateLastConnection();
return true;
}
else
{
if (LocalAcess.HasExpired)
{
return false;
}
}
}
return true;
}
答案 2 :(得分:0)
你可以试试这个...我会建议你保持业务逻辑不稳定,并且删除很多,否则它可能会将业务逻辑转化为混乱!!!
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;
}
此博客可能会对此有所帮助...... How to avoid "if" chains?