不寻常的函数定义 - 这里发生了什么

unusual function definition - what is happening here

我正在查看身份服务器 4 文档,我遇到了这段代码。

private (TestUser user, string provider, string providerUserId, IEnumerable<Claim> claims) FindUserFromExternalProvider(AuthenticateResult result)
{
    var externalUser = result.Principal;

    // try to determine the unique id of the external user (issued by the provider)
    // the most common claim type for that are the sub claim and the NameIdentifier
    // depending on the external provider, some other claim type might be used
    var userIdClaim = externalUser.FindFirst(JwtClaimTypes.Subject) ??
                      externalUser.FindFirst(ClaimTypes.NameIdentifier) ??
                      throw new Exception("Unknown userid");

    // remove the user id claim so we don't include it as an extra claim if/when we provision the user
    var claims = externalUser.Claims.ToList();
    claims.Remove(userIdClaim);

    var provider = result.Properties.Items["scheme"];
    var providerUserId = userIdClaim.Value;

    // find external user
    var user = _users.FindByExternalProvider(provider, providerUserId);

    return (user, provider, providerUserId, claims);
}

而且是这样叫的

var (user, provider, providerUserId, claims) = FindUserFromExternalProvider(result);

我不太明白这里发生了什么。这是什么函数定义用法?

你是说 returned 数据?这是一个 值元组 returned,请参阅此 article 以获取值元组指南。值元组是一种 return 多个参数而无需创建自定义 class.

的方法

该方法尝试在用户通过外部身份验证后在本地数据库中查找用户。