This sounds trivial but I am having challenge. I cannot convert a nullable to a non-nullable value:
if (caseObj.SyncDate != null)
caseDTO.SyncDate = DateTimeHelper.getFormattedDateTime(caseObj.SyncDate);
Where my caseObj.SyncDate is defined as:
public DateTimeOffset? SyncDate {get;set;}
And my getFormattedDateTime is:
public static string getFormattedDateTime(DateTimeOffset dateTimeOffset) {
string returnDate = null;
if (dateTimeOffset != null) {
returnDate = dateTimeOffset.ToString("yyyy-MM-dd HH:mm:ss.fffzzz", CultureInfo.InvariantCulture);
}
return returnDate;
}
I read this and tried:
if (caseObj.SyncDate != null)
caseDTO.SyncDate = DateTimeHelper.getFormattedDateTime(caseObj.SyncDate!):
Which seems strange since I saw this link to Microsoft documentation which states:
Sometimes you must override a warning when you know a variable isn't null, but the compiler determines its null-state is maybe-null. You use the null-forgiving operator ! following a variable name to force the null-state to be not-null. For example, if you know the name variable isn't null but the compiler issues a warning, you can write the following code to override the compiler's analysis:
But that didn't seem to work. I have read this post (which I thought was focused enough) and this one for which the marked solution was not to convert from nullable to null.
I have tried this as well:
if (caseObj.SyncDate != null) {
DateTimeOffset dto = (DateTimeOffset) caseObj.SyncDate;
caseDTO.SyncDate = DateTimeHelper.getFormattedDateTime(dto);
}
But get this:
Argument 1: cannot convert from 'System.DateTimeOffset?' to 'System.DateTime'
Which is strange because I am not trying to convert from System.DateTimeOffset? to System.DateTime. I am trying to convert System.DateTimeOffset? to DateTimeOffset.
I'm running dotnet core on a Mac (version 6.0.201). There seem to be some long complicated answers, but I assume there is a simple way to do this that I'm missing.