Table of Contents

Struct Cacheable<TCachedEntity, TDownloadableEntity, TRelationship, TId>

Namespace
Kook
Assembly
Kook.Net.Core.dll

表示一个可延迟加载的缓存实体。

public readonly struct Cacheable<TCachedEntity, TDownloadableEntity, TRelationship, TId> where TCachedEntity : IEntity<TId>, TRelationship where TDownloadableEntity : IEntity<TId>, TRelationship where TId : IEquatable<TId>

Type Parameters

TCachedEntity

可延迟加载的缓存实体的类型。

TDownloadableEntity

可从 API 请求下载的实体的类型。

TRelationship

TCachedEntityTDownloadableEntity 共同继承或实现的类型。

TId

可延迟加载的缓存实体的 ID 的类型。

Inherited Members

Properties

HasValue

获取此实体是否已缓存。

public bool HasValue { get; }

Property Value

bool

Id

获取此实体的唯一标识符。

public TId Id { get; }

Property Value

TId

Value

如果可以从缓存中获取实体,则获取该实体。

public TCachedEntity? Value { get; }

Property Value

TCachedEntity

Remarks

此属性不保证非空;在无法从缓存中拉取实体的情况下,此属性返回 null

Methods

DownloadAsync()

将此实体下载到缓存中。

public Task<TDownloadableEntity?> DownloadAsync()

Returns

Task<TDownloadableEntity>

一个表示异步下载操作的任务。任务结果包含下载的实体;如果无法通过 API 请求下载实体,或下载的实体无法转换为 TDownloadableEntity,则为 null

GetOrDownloadAsync()

如果实体已存在于缓存中,则返回该实体;否则下载该实体并返回。

public Task<TRelationship?> GetOrDownloadAsync()

Returns

Task<TRelationship>

一个表示异步获取或下载操作的任务。任务结果包含所获取或下载的实体;如果无法通过 API 请求下载实体,或下载的实体无法转换为 TDownloadableEntity,则为 null