> ## 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.

# 快速入门 - 适用于 C# 的 PlayFab 客户端库

> 在 Visual Studio 中安装 PlayFabAllSDK NuGet 包,并在 C# .NET Core 控制台应用程序中进行第一次 PlayFab 客户端 API 调用。

# 快速入门:适用于 C# 的 PlayFab 客户端库

开始使用适用于 C# 的 PlayFab 客户端库。按照步骤安装包并尝试基本任务的示例代码。

本快速入门将帮助你使用适用于 C# 的客户端库进行第一次 PlayFab API 调用。

[API 参考文档](/services/playfab/api-references)

## 要求

* 一个 [PlayFab 开发者账户](https://developer.playfab.com)。
* 已安装 [Visual Studio](https://visualstudio.microsoft.com/)。

## CSharp 项目设置

安装

1. 打开 Visual Studio 并选择**创建新项目**。
2. 选择 C# 的**控制台应用 (.Net Core)**。
3. 安装 **PlayFabAllSDK** 的 NuGet 包。

<img src="https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/sdks/c-sharp/csharp-nuget-add.png?fit=max&auto=format&n=N3T1ucKV7zIMBudj&q=85&s=a87483676c9c787fa44ef10da4d0195a" alt="VS - 安装 PlayFab SDK 的 nuget 包" width="918" height="336" data-path="images/playfab/sdks/c-sharp/csharp-nuget-add.png" />

此时,你应该可以成功编译项目。输出窗口应包含类似下面示例的内容。

```output theme={null}
1>------ Build started: Project: CSharpGettingStarted, Configuration: Debug Any CPU ------
1>  CSharpGettingStarted -> c:\dev\CSharpGettingStarted\CSharpGettingStarted\bin\Debug\CSharpGettingStarted.exe
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
```

## 设置你的第一个 API 调用

本指南提供了进行第一次 PlayFab API 调用所需的最少步骤。通过控制台输出进行确认。

你的新项目应该包含一个名为 Program.cs 的文件,该文件由 Visual Studio 自动创建。打开该文件,并将其内容替换为下面示例中显示的代码(粘贴代码后,你可能需要刷新文件才能看到它)。API 调用的确认将通过写入控制台输出的消息完成。

```csharp theme={null}
using System;
using System.Threading;
using System.Threading.Tasks;
using PlayFab;
using PlayFab.ClientModels;

public static class Program
{
    private static bool _running = true;
    static void Main(string[] args)
    {
        PlayFabSettings.staticSettings.TitleId = "144"; // Please change this value to your own titleId from PlayFab Game Manager

        var request = new LoginWithCustomIDRequest { CustomId = "GettingStartedGuide", CreateAccount = true };
        var loginTask = PlayFabClientAPI.LoginWithCustomIDAsync(request);
        // If you want a synchronous result, you can call loginTask.Wait() - Note, this will halt the program until the function returns

        while (_running)
        {
            if (loginTask.IsCompleted) // You would probably want a more sophisticated way of tracking pending async API calls in a real game
            {
                OnLoginComplete(loginTask);
            }

            // Presumably this would be your main game loop, doing other things
            Thread.Sleep(1);
        }

        Console.WriteLine("Done! Press any key to close");
        Console.ReadKey(); // This halts the program and waits for the user
    }

    private static void OnLoginComplete(Task<PlayFabResult<LoginResult>> taskResult)
    {
        var apiError = taskResult.Result.Error;
        var apiResult = taskResult.Result.Result;

        if (apiError != null)
        {
            Console.ForegroundColor = ConsoleColor.Red; // Make the error more visible
            Console.WriteLine("Something went wrong with your first API call.  :(");
            Console.WriteLine("Here's some debug information:");
            Console.WriteLine(PlayFabUtil.GenerateErrorReport(apiError));
            Console.ForegroundColor = ConsoleColor.Gray; // Reset to normal
        }
        else if (apiResult != null)
        {
            Console.WriteLine("Congratulations, you made your first successful API call!");
        }

        _running = false; // Because this is just an example, successful login triggers the end of the program
    }
}
```

## 完成并执行

当你执行此程序时,控制台中会显示以下输出

"Congratulations, you made your first successful API call! Done! Press any key to close."

* 此时,你可以开始进行其他 API 调用,并构建你的游戏。

* 要构建管理员实用程序,请参阅位于 `{CSharpSdk}/PlayFabClientSDK/sources` 中的 PlayFab CSharpSdk zip 文件中的备用源文件。

有关所有可用客户端 API 调用或许多其他文章的列表,请参阅 [PlayFab API 参考](/services/playfab/api-references)。


## Related topics

- [Unreal Engine 快速入门](/zh-CN/services/playfab/sdks/unreal/quickstart.md)
- [NodeJS 快速入门](/zh-CN/services/playfab/sdks/nodejs/quickstart.md)
- [适用于原生 JavaScript 和 Phaser 的 JavaScript 快速入门](/zh-CN/services/playfab/sdks/javascript/quickstart.md)
- [Unity 快速入门](/zh-CN/services/playfab/sdks/unity3d/quickstart.md)
- [适用于 Postman 的 PlayFab REST API 集合快速入门](/zh-CN/services/playfab/sdks/postman/postman-quickstart.md)
