ich mithilfe der ToString-Methode ein Datetime in einen String der Form „c“, zu formatieren versuche:Keine Überlastung Methode für ToString dauert 2 Argumente
string end = evt.End.DateTime.ToString("c", DataController.culture);
DataController.culture ist ein Verweis auf ein gültiges culture object und evt ist ein Ereignisobjekt aus der Google Kalender v3-API. Ich bin sicher, dass DateTime der DateTime-Klasse angehört, weil der Debugger dies in der Art des Objekts sagt.
Allerdings bekomme ich das Thema im Titel erwähnt, warum? Auch die MSDN docs zeigen, wie diese Methode zu verwenden, aber irgendwie kann ich nicht:
Console.WriteLine(date1.ToString("d MMMM",
CultureInfo.CreateSpecificCulture("es-MX")));
// Displays 29 agosto
Ändern Sie den Code in "evt.End.DateTime.GetType(). FullName". Wie lautet der vollständige Name des Typs, der Ihrer Meinung nach eine DateTime ist? –
Beim Betrachten der Dokumente sind diese virtuell, was mich zu der Annahme verleitet, dass sie zum Zeitpunkt des Zugriffs tatsächlich unterschiedliche Typen sind https://developers.google.com/resources/api-libraries/documentation/calendar/v3/csharp /latest/classGoogle_1_1Apis_1_1Calendar_1_1v3_1_1Data_1_1EventDateTime.html – mckeejm
Ich hatte nicht berücksichtigt, dass der Typ möglicherweise nullfähig ist. wie dumm von mir. Das würde das beobachtete Verhalten erklären, und der von mir vorgeschlagene Test - Drucken des Laufzeittyps - hätte das Problem im typischen Fall nicht angezeigt. (Weil GetType() entweder abstürzen würde, wenn der Wert null wäre, oder return typeof (DateTime), wenn dies nicht der Fall wäre.) –