Google 日历事件开始/结束属性的编译器警告

Compiler warning for Google Calendar Event Start / End Properties

提问人:Andrew Truckle 提问时间:11/13/2023 最后编辑:Andrew Truckle 更新时间:11/13/2023 访问量:33

问:

我正在使用 Google 日历 v3 API,并且我有一个 Visual Basic 应用程序。

它已经工作了多年,现在仍然有效,但我在编译过程中注意到一个警告,涉及:

Googles.Apis.Calendar.v3.Data.Event

我初始化变量:

Dim oEvent As New Data.Event With {
    .Summary = sEvent.strTitle,
    .Description = sEvent.strEventDetails,
    .Location = sEvent.strLocation
}

但有一点特别要注意:

Dim eventStartDT As New Data.EventDateTime() With {
        .DateTime = dtDateTimeStart
}

Dim eventEndDT As New Data.EventDateTime() With {
    .DateTime = dtDateTimeFinish
}

oEvent.Start = eventStartDT
oEvent.End = eventEndDT

我看过文档:

https://developers.google.com/calendar/api/v3/reference/events

它们暗示我的代码没问题。它指出:

  "start": {
    "date": date,
    "dateTime": datetime,
    "timeZone": string
  },
  "end": {
    "date": date,
    "dateTime": datetime,
    "timeZone": string
  },

然而,在编译过程中:

...Program.vb(955,26):警告BC40000:“公共可重写重载属性”已过时:“此属性已过时,可能行为意外;请改用。DateTime As Date?DateTimeDateTimeOffset

我不知道该怎么办。

enter image description here

我确认新属性已列出:

enter image description here

vb.net google-calendar-api

评论

1赞 nbk 11/13/2023
接受建议
0赞 Andrew Truckle 11/13/2023
@nbk 当然,我试图使用新方法找到一个可行的例子。
0赞 jmcilhinney 11/13/2023
这真的是警告的准确措辞吗?我猜不是。我想你在尝试格式化它时可能已经搞砸了。
0赞 Andrew Truckle 11/13/2023
@jmcilhinney 是的。我复制/粘贴它。
1赞 jmcilhinney 11/13/2023
好的,所以有一个带有名称的属性。很奇怪,但我们开始了。它确实是 DateTimeOffset 类型,因此您只需要设置它即可。DateTimeOffset 类似于 DateTime,但它包含有关与 UTC 的偏移量的信息。只需阅读该类型的文档,创建一个适当的值并将其分配给该属性即可。

答:

1赞 jmcilhinney 11/13/2023 #1

看来这部分:

Dim eventStartDT As New Data.EventDateTime() With {
        .DateTime = dtDateTimeStart
}

Dim eventEndDT As New Data.EventDateTime() With {
    .DateTime = dtDateTimeFinish
}

oEvent.Start = eventStartDT
oEvent.End = eventEndDT

应该是这样的:

Dim eventStartDT As New Data.EventDateTime() With {
        .DateTimeDateTimeOffset = New DateTimeOffset(dtDateTimeStart)
}

Dim eventEndDT As New Data.EventDateTime() With {
    .DateTimeDateTimeOffset = New DateTimeOffset(dtDateTimeFinish)
}

oEvent.Start = eventStartDT
oEvent.End = eventEndDT

还有一个构造函数,允许您设置与 UTC 的偏移量。请参阅此处的相关文档。