Table of Contents

Interface IChannel

Namespace
Kook
Assembly
Kook.Net.Core.dll

表示一个通用的频道。

public interface IChannel : IEntity<ulong>
Inherited Members
Extension Methods

Properties

Name

获取此频道的名称。

string Name { get; }

Property Value

string

Methods

GetUserAsync(ulong, CacheMode, RequestOptions?)

获取此频道中的用户。

Task<IUser?> GetUserAsync(ulong id, CacheMode mode = CacheMode.AllowDownload, RequestOptions? options = null)

Parameters

id ulong

要获取的用户的 ID。

mode CacheMode

指示当前方法是否应该仅从缓存中获取结果,还是可以通过 API 请求获取数据。

options RequestOptions

发送请求时要使用的选项。

Returns

Task<IUser>

一个表示异步获取操作的任务。任务结果包含表示找到的用户;如果没有找到,则返回 null

GetUsersAsync(CacheMode, RequestOptions?)

获取能够查看频道或当前在该频道中的所有用户。

IAsyncEnumerable<IReadOnlyCollection<IUser>> GetUsersAsync(CacheMode mode = CacheMode.AllowDownload, RequestOptions? options = null)

Parameters

mode CacheMode

指示当前方法是否应该仅从缓存中获取结果,还是可以通过 API 请求获取数据。

options RequestOptions

发送请求时要使用的选项。

Returns

IAsyncEnumerable<IReadOnlyCollection<IUser>>

分页的用户集合的异步可枚举对象。

Remarks

important

返回的集合是一个异步可枚举对象;调用 FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>) 可以异步枚举所有分页,并将其合并为一个集合。


此方法将尝试获取所有能够查看该频道或当前在该频道中的用户。此方法会根据 MaxUsersPerBatch 将请求拆分。换句话说,如果有 3000 名用户,而 MaxUsersPerBatch 的常量为 50,则请求将被拆分为 60 个单独请求,因此异步枚举器会异步枚举返回 60 个响应。 FlattenAsync<T>(IAsyncEnumerable<IEnumerable<T>>) 方法可以展开这 60 个响应返回的集合,并将其合并为一个集合。