C# 如果需要,请立即返回

C# 如果需要,请立即返回,c#,C#,如果出现以下情况,我尝试使用速记重写此方法: public string checkInputParamters(string baseUrl, string owner, string documentId, string user, string secret, string type) { if (String.IsNullOrEmpty(baseUrl)) return ExceptionsCodes.BASE_URL_CANNOT_BE_NU

如果出现以下情况,我尝试使用速记重写此方法:

 public string checkInputParamters(string baseUrl, string owner, string documentId, string user, string secret, string type)
    {
      if (String.IsNullOrEmpty(baseUrl)) 
          return ExceptionsCodes.BASE_URL_CANNOT_BE_NULL_OR_EMPTY.ToString("g");

      if (String.IsNullOrEmpty(owner))
          return ExceptionsCodes.OWNER_CANNOT_BE_NULL_OR_EMPTY.ToString("g");

      return "";
    }
我不能这样做,因为return迫使我在“:“iso”;”后面加上一个值


有什么想法吗?

另一件需要注意的事情是,你可以替换

((null == owner) || (string.Empty == owner))


另一件需要注意的事情是,您可以替换

((null == owner) || (string.Empty == owner))


如果不是这两种情况中的任何一种,您将丢失默认返回

例如:

return String.IsNullOrEmpty(owner)?ExceptionsCodes.OWNER_BLAH.ToString("g"):(String.IsNullOrEmpty(baseUrl)?ExceptionsCodes.BASEURL_BLAH.ToString("g"):"");

如果不是这两种情况中的任何一种,您将丢失默认返回

例如:

return String.IsNullOrEmpty(owner)?ExceptionsCodes.OWNER_BLAH.ToString("g"):(String.IsNullOrEmpty(baseUrl)?ExceptionsCodes.BASEURL_BLAH.ToString("g"):"");

这就是你的想法吗

public string checkInputParamters(string baseUrl, string owner, string documentId, string user, string secret, string type)
    {
        return String.IsNullOrEmpty(baseUrl) ? 
            ExceptionsCodes.BASE_URL_CANNOT_BE_NULL_OR_EMPTY.ToString("g") :
            ( String.IsNullOrEmpty(owner) ? ExceptionsCodes.OWNER_CANNOT_BE_NULL_OR_EMPTY.ToString("g") : "" );
    }

这就是你的想法吗

public string checkInputParamters(string baseUrl, string owner, string documentId, string user, string secret, string type)
    {
        return String.IsNullOrEmpty(baseUrl) ? 
            ExceptionsCodes.BASE_URL_CANNOT_BE_NULL_OR_EMPTY.ToString("g") :
            ( String.IsNullOrEmpty(owner) ? ExceptionsCodes.OWNER_CANNOT_BE_NULL_OR_EMPTY.ToString("g") : "" );
    }

该方法必须返回某些内容。我怀疑上面的例子是否正确。(我看你现在改了。)

把另外两个答案结合起来

public string checkInputParamters(string baseUrl, string owner, string documentId, string user, string secret, string type)
{
  return String.IsNullOrEmpty(baseUrl) ?
      ExceptionsCodes.BASE_URL_CANNOT_BE_NULL_OR_EMPTY.ToString("g")
  : (String.IsNullOrEmpty(owner) ?
      ExceptionsCodes.OWNER_CANNOT_BE_NULL_OR_EMPTY.ToString("g")
  : String.Empty;


}

该方法必须返回某些内容。我怀疑上面的例子是否正确。(我看你现在改了。)

把另外两个答案结合起来

public string checkInputParamters(string baseUrl, string owner, string documentId, string user, string secret, string type)
{
  return String.IsNullOrEmpty(baseUrl) ?
      ExceptionsCodes.BASE_URL_CANNOT_BE_NULL_OR_EMPTY.ToString("g")
  : (String.IsNullOrEmpty(owner) ?
      ExceptionsCodes.OWNER_CANNOT_BE_NULL_OR_EMPTY.ToString("g")
  : String.Empty;


}

依我看,在这种情况下,使用第一个示例布局的解决方案更具可读性。我更关心这里的可读性,而不是试图修改代码


僵尸在
String.IsNullOrEmpty(owner)
中交换的解决方案将是一个很好的增强

imo,在这种情况下,使用第一个示例布局的解决方案更具可读性。我更关心这里的可读性,而不是试图修改代码


僵尸在
String.IsNullOrEmpty(owner)
中交换的解决方案将是一个很好的增强

我个人不喜欢内联if,但这应该可以解决问题

            return (
                String.IsNullOrEmpty(baseUrl)?
                ExceptionsCodes.BASE_URL_CANNOT_BE_NULL_OR_EMPTY.ToString("g"):(
                    String.IsNullOrEmpty(owner)?
                    ExceptionsCodes.OWNER_CANNOT_BE_NULL_OR_EMPTY.ToString("g"):
                    string.Empty
                )
            );

与其他人所说的几乎一样,我只想让(隐含的)()在内联ifs中清晰可见,我个人不喜欢内联if,但这应该可以做到

            return (
                String.IsNullOrEmpty(baseUrl)?
                ExceptionsCodes.BASE_URL_CANNOT_BE_NULL_OR_EMPTY.ToString("g"):(
                    String.IsNullOrEmpty(owner)?
                    ExceptionsCodes.OWNER_CANNOT_BE_NULL_OR_EMPTY.ToString("g"):
                    string.Empty
                )
            );

与其他人所说的几乎一样,我只想让(隐含的)()在内联ifs中清晰可见。在第一个示例中,如果
语句都为false,则不会返回任何内容。这将导致编译错误。你能纠正一下你的代码吗?如果是的话,用速记有什么意义?这会使代码变得难看和不可读,尤其是在这种情况下,而上面代码中的两个“如果”一目了然。只是一个简短的稍微离题的评论:克里斯蒂安,你知道你可以做
string.InNullOrEmpty(baseUrl)
将这两个检查合并为一个检查?在第一个示例中,如果两个
if
语句都为false,则不返回任何内容。这将导致编译错误。你能纠正一下你的代码吗?如果是的话,用速记有什么意义?这会让代码变得难看和不可读,尤其是在这种情况下,而上面代码中的两个“如果”一目了然。只是一个简短的稍微离题的评论:克里斯蒂安,你知道你可以使用
string.InNullOrEmpty(baseUrl)
将这两个检查合并为一个吗?