我的代码中有些逻辑,我想知道是否有更好的重写方法。我有两个用户定义的服务器对象(serverA和serverB),如果它们都是枚举ServerType WebDatabase,我想继续。

当前代码很笨拙:

if((serverA.ServerType == ServerType.Web || serverA.ServerType == ServerType.Database) && (serverB.ServerType == ServerType.Web || serverB.ServerType == ServerType.Database))
{
    // do stuff
}


我追求一种简洁的写作方式。

最佳答案

我将在您的用户定义的服务器对象中具有一个新属性

public class Server
{
    public ServerType ServerType { get; set; }

    public bool IsDatabaseOrWeb
    {
        get
        {
            return ServerType == ServerType.Web || ServerType == ServerType.Database;
        }
    }
}


然后你的函数看起来像这样

if (serverA.IsDatabaseOrWeb && serverB.IsDatabaseOrWeb)
{
   // do stuff
}

10-05 21:49