C#6空条件检查

Ala*_*n B 0 c# c#-6.0 null-propagation-operator

如何将其转换为C#6 Null条件检查?

var durationhours = product.ProductAudioAsset.TotalLengthInSeconds != null
    ? (short?)TimeSpan.FromSeconds(product.ProductAudioAsset.TotalLengthInSeconds.Value).TotalHours
    : null;
Run Code Online (Sandbox Code Playgroud)

其中TotalLengthInSeconds可以为空

Eni*_*ity 5

您可以创建一个扩展方法来帮助:

public static short SecondsAsTotalHours(this short value)
{
    return (short)TimeSpan.FromSeconds(value).TotalHours;
}
Run Code Online (Sandbox Code Playgroud)

然后你可以这样做:

var durationhours = product.ProductAudioAsset.TotalLengthInSeconds?.SecondsAsTotalHours();
Run Code Online (Sandbox Code Playgroud)

  • 这是一个很好的答案.我会将TimeSpanFromSeconds重命名为SecondsAsTotalHours或类似的东西. (3认同)