> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XUserGamertagComponent

> XUserGamertagComponent

# XUserGamertagComponent

指定要提取的玩家代号的类型（或组件）。

## Syntax

```cpp theme={null}
enum class XUserGamertagComponent  : uint32_t  
{  
    Classic = 0,  
    Modern = 1,  
    ModernSuffix = 2,  
    UniqueModern = 3,  
}  
```

## Constants

| 常量           | 说明                   |
| ------------ | -------------------- |
| Classic      | 经典玩家代号。              |
| Modern       | 无后缀的新式玩家代号。          |
| ModernSuffix | 新式玩家代号后缀（如果存在，否则为空）。 |
| UniqueModern | 带后缀的新式玩家代号，以保证唯一性。   |

## Remarks

每个玩家代号组件的长度限制和缓冲区大小如下。

* **经典玩家代号** (`XUserGamertagComponent::Classic`)

  * 最大长度为 15 个字符，外加一个 null 终止符。经典玩家代号一直被限制为 15 个字符。

  * 缓冲区最大大小为 16 字节，包括 null 终止符的空间；(15 个 US-ASCII 字符) + (1 字节 null 终止符) = 16 字节。

* **新式玩家代号** (`XUserGamertagComponent::Modern`)

  * 最大长度为 12 个字符，每个字符最多带有 1 个变音符号，外加一个 null 终止符。

  * 如果用户未设置新式玩家代号，则此项与 `XUserGamertagComponent::Classic` 相同。

  * 缓冲区最大大小为 97 字节，包括 null 终止符的空间；(12 个字符 + 12 个变音符号) \* (4 字节/字符) + (1 字节 null 终止符) = 97 字节。

* **后缀** (`XUserGamertagComponent::ModernSuffix`)

  * 最大长度为 14 个字符（无变音符号），外加一个 null 终止符。

  * 经典玩家代号没有后缀（只有 null 终止符）。

  * 缓冲区最大大小为 15 字节，包括 null 终止符的空间；(14 个数字 ASCII 字符) + (1 字节 null 终止符) = 15 字节。

  * 对于 11 个字符或以下的新式玩家代号，通常分配 4 位数字后缀。
    如果 4 位数字空间已用完，字符数将增加，最多可达到唯一新式玩家代号 16 个字符总长度限制内允许的最大字符数。

* **唯一新式玩家代号** (`XUserGamertagComponent::UniqueModern`)

  * 包含新式玩家代号 + '#' + 新式后缀，或者经典玩家代号不带 '#' 也没有后缀。

  * 最大长度为 16 个字符，外加一个 null 终止符。

  * 缓冲区最大大小为 101 字节，包括 null 终止符的空间；(12 个字符 + 12 个变音符号) \* (4 字节/字符) + '#' (1 字节) + (3 个数字 US-ASCII 字符) + null 终止符 (1 字节) = 101 字节。

  * 唯一新式玩家代号的 16 个字符限制意味着，具有 12 个字符的新式玩家代号仅限于 3 位数字后缀，因为有 '#' 字符，所以总计呈现 16 个字符。

  * 随着新式玩家代号中字符数的减少，后缀字符数可以增加，但唯一新式玩家代号的总最大字节数永远不会超过此值。

## Requirements

**头文件：** XUser.h

**受支持的平台：** Windows、XBOX One 系列主机和 XBOX Series 主机

## See also

[XUser](/reference/system/xuser/xuser_members)

[XUserGetGamertag](/reference/system/xuser/functions/xusergetgamertag)

[新式玩家代号](/services/xbox-services/fundamentals/identity/user-profile/gamertags/live-modern-gamertags-toc)


## Related topics

- [游戏玩家代号概述](/zh-CN/services/xbox-services/fundamentals/identity/user-profile/gamertags/live-gamertags-overview.md)
- [XUserGetGamertag](/zh-CN/reference/system/xuser/functions/xusergetgamertag.md)
- [现代游戏玩家代号的定义和术语](/zh-CN/services/xbox-services/fundamentals/identity/user-profile/gamertags/live-modern-gamertags-definition.md)
- [现代游戏玩家代号的最佳实践和测试](/zh-CN/services/xbox-services/fundamentals/identity/user-profile/gamertags/live-modern-gamertags-best-practices-and-testing.md)
- [XUser](/zh-CN/reference/system/xuser/xuser_members.md)
