首页 > 解决方案 > 如何将“整数”转换为“时间戳”?

问题描述

**我做了努力,但在测试时出错

错误 BC30311“整数”类型的值无法转换为“时间戳”。**

我试过这个:

 Public Sub test()

    client = New DiscordRpcClient("test")

    client.Logger = New ConsoleLogger

    client.Initialize()



    client.SetPresence(New RichPresence With {
        .Details = "test",
        .Assets = New Assets() With {
        .LargeImageKey = "test",
        .LargeImageText = "test",
        .Timestamps = 0
    })

    Dim timer = New System.Timers.Timer(150)
    AddHandler timer.Elapsed, Sub(sender, args)
                                  client.Invoke()
                              End Sub

    timer.Start()

    client.Invoke()
    End Sub

这里的问题是“Timestamps = 0”,那么我该如何解决。我正在尝试使用不和谐丰富的存在时间计时器。

标签: discord.net

解决方案


这实际上是这个 Discord-RPC-Csharp 库的问题,而不是 C#。话虽如此,我还是调查了一下。

该项目的存储库中给出的示例代码将此作为示例

Timestamps = Timestamps.FromTimeSpan(10)

当您尝试将一种值类型分配给完全不同的类型时,请参阅您得到的错误是特定于 C# 的错误。Integer 不是 Timestamp,Timestamp 也不是 Integer。所以我们需要弄清楚时间戳实际上是什么。因此,最好的方法是右键单击时间戳并转到“转到定义”或按 F12。

现在在 RichPresence.cs 中,您可以看到 Timestamps 的类定义。您将看到四个选项

Timestamps.Now
Timestamps.FromTimeSpan(double seconds)
Timestamps.FromTimeSpan(Timespan timespan)

除了构造函数

new Timestamps(DateTime start, DateTime end)

由于您还没有告诉我们这个时间戳在您的代码中应该代表什么,所以我会留给您来确定您想要/需要使用其中的哪一个。


推荐阅读