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

.net core 不寻常的函数定义-这里发生了什么,.net-core,identityserver4,.net Core,Identityserver4,我在查看identity server 4文档时发现了这段代码 private (TestUser user, string provider, string providerUserId, IEnumerable<Claim> claims) FindUserFromExternalProvider(AuthenticateResult result) { var externalUser = result.Principal; // try to determi

我在查看identity server 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);