方法执行动作并返回布尔值

本文关键字:返回 布尔值 执行 方法 | 更新日期: 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;             
}

这个博客可能会帮助你更多…如何避免"如果"链吗?